1. 程式人生 > >WebApi系列~開放的CORS,跨域資源訪問對所有人開放

WebApi系列~開放的CORS,跨域資源訪問對所有人開放

之前有客戶問我,如何AJAX跨域post,這個問題挺有意思,在我們看來,我是不被允許的,因為它是不安全的,但隨著web api的火熱,這個東西也被人們一步步的接受了,確實,有時,我們的介面希望對所有人公開,它並不在乎有人惡意去POST灌資料,呵呵!

實現思路:向HTTP請求頭新增跨域標識Access-Control-Allow-Origin,將它的值設為*即可,當然如果你一個個頁面去加那就太麻煩了,也不推薦,有一天老總感覺這是不安全的了,讓你去掉它,只你可就麻煩大了,哈哈,所以,還有找個全域性點吧!

開放的CORS過濾器,只對類開放,不支援方法單獨設定

複製程式碼
    /// <summary>
/// 開放cors協議,支援跨域訪問 /// </summary> [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)] public class OpenCorsAttribute : ActionFilterAttribute { /// <summary> /// 開放cors協議,支援跨域訪問的初始化 /// </summary> public OpenCorsAttribute() { }
/// <summary> ///在action渲染之前 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { var responseHead = filterContext.RequestContext.HttpContext.Response.Headers;
if (responseHead != null) { responseHead.Add("Access-Control-Allow-Origin", "*"); } base.OnActionExecuting(filterContext); } }
複製程式碼

使用它也非常簡單

   [OpenCorsAttribute]
    public class HomeController : AsyncController
    {
 }

而如果希望所有控制器都新增這個特性,可以在FilterConfig類中去新增全域性過濾器

複製程式碼
 public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new OpenCorsAttribute());
            filters.Add(new GlobalErrorAttribute());
            filters.Add(new HandleErrorAttribute());
            filters.Add(new UrlRuleFilterAttribute());
        }
複製程式碼

這樣,你所有的Action也被破加上了這個特性,當然,如果你手動向Action上這是不被允許的,因為我們設定了AttributeUsage(AttributeTargets.Class),呵呵

程式截圖

相關推薦

WebApi系列~開放CORS資源訪問所有開放

之前有客戶問我,如何AJAX跨域post,這個問題挺有意思,在我們看來,我是不被允許的,因為它是不安全的,但隨著web api的火熱,這個東西也被人們一步步的接受了,確實,有時,我們的介面希望對所有人公開,它並不在乎有人惡意去POST灌資料,呵呵! 實現思路:向HTTP

jQuery-ajax系列用法及JSONP,資源共享CORS

jQuery-ajax 基本使用 $.ajax({ url:'json.php', //設定的是請求引數,二者沒關係 data:{name:'張三',age:'18'}, //用於設定響應體型別 dataType:'json', type:'

前後端互動問題解決方案資源共享(CORS

跨域資源共享(CORS) 普通跨域請求:只服務端設定Access-Control-Allow-Origin即可,前端無須設定,若要帶cookie請求:前後端都需要設定。 需注意的是:由於同源策略的限制,所讀取的cookie為跨域請求介面所在域的cookie,而非當前頁。如

CORS資源共享)

簡介 跨域資源共享的主要思想就是使用自定義的HTTP頭部讓瀏覽器與伺服器進行溝通,從而決定響應式是成功還是失敗,它允許了瀏覽器向跨源伺服器傳送請求,克服了同源的限制。 CORS需要瀏覽器和伺服器同時支援,所有瀏覽器目前都支援,IE需要10以上。在整個通訊過程中,不需要使用者參與,都是由瀏覽器

java服務端解決js的問題 CORS資源共享) 的配置

nginx相容跨域上傳 相容情況: 各種新版本的ie10,firefox,opera,safari,chrome以及移動版safari和Android瀏覽器 ie9及一下版本請使用flash方式來相容 通過OPTIONS請求握手一次的方式實現跨根域傳送請求,需要服務端配置

tomcat下CORS資源共享) 的配置

CORS介紹    它在維基百科上的定義是:跨域資源共享(CORS )是一種網路瀏覽器的技術規範,它為Web伺服器定義了一種方式,允許網頁從不同的域訪問其資源。而這種訪問是被同源策略所禁止的。CORS系統定義了一種瀏覽器和伺服器互動的方式來確定是否允許跨域請求。 它是

Spring Security (CORS)資源訪問配置

跨域 class 瀏覽器和服務器 fig w3c xmlhttp nbsp gin ima 1、CORS介紹 CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。它允許瀏覽器向跨源(協議 + 域名 + 端口)服務器

Spring、Spring-Boot、Spring-Security中CORS資源共享)的支援

       出於安全原因,瀏覽器禁止AJAX呼叫當前域之外的域的資源。跨源資源共享(CORS)是由大多數瀏覽器實現的W3C規範,允許您指定哪些型別的跨域請求是被授權的,而不是基於IFRAME或JSONP的不安全且功能較差的工作區。      Spring MVC Hand

apache如何解決資源訪問

很多時候,大中型網站為了靜態資源分散式部署,加快訪問速度,減輕主站壓力,會把靜態資源(例如字型檔案、圖片等)放在獨立伺服器或者CDN上,並且使用獨立的資源域名(例如res.test.com) 但是在實際部署中,會發現瀏覽器無法載入這些不同域名的資源,firefox控制檯會報

資源共享CORS詳解

附加 accep 不發送 地址 code 克服 通信 數據 ror 簡介 CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。 它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX

資源共享(CORS)

flight turn 地理 add example html 變化 ring 否則   通過 XHR 實現 Ajax 通信的一個主要限制,來源於跨域安全策略。默認情況下,XHR 對象只能訪 問與包含它的頁面位於同一個域中的資源。這種安全策略可以預防某些惡意行為。但是,實現

CORS資源共享你該知道的事兒

自身 沒有 對象的使用方法 one 一起 接受 gpm spa eat “嘮嗑之前,一些客套話” CORS跨域資源共享,這個話題大家一定不陌生了,吃久了大轉轉公眾號的深度技術好文,也該吃點兒小米粥溜溜胃裏的縫兒了,今天咱們就再好好屢屢CORS跨域資源共享這個話題,大牛怡情

HTTP(二)、資源共享(CORS

2.跨域資源共享(CORS) 跨域簡介 當訪問一個資原始檔時,如果從非該資原始檔所在的伺服器不同域名或者埠處進行訪問時,該資源會發起一個跨域請求。 例如,網站A的地址是http://www.domain-a.com ,該網站中HTML頁面通過 img 標籤中的

WebApi使用cors配置問題

1.首先安裝CORS,在WebApiCors專案上面使用Nuget搜尋“microsoft.aspnet.webapi.cors”,安裝第一個  2.當我們安裝這個包之後,現有的packages目錄下會新增兩個名稱分別為“Microsoft.AspNet.Cors.5.2.3”和“Microsof

資源共享——CORS

跨域資源共享(Cross-Origin Resource Sharing)是一種機制,它使用額外的 HTTP 頭部告訴瀏覽器可以讓一個web應用進行跨域資源請求。 請求型別 簡單請求 若一個請求同時滿足下述所有條件,則該請求可視為“簡單請求”(注:灰色字型內容瞭解即可): 使用的方法為

Access-Control-Allow- 設定 CORS(資源共享)詳解

跨域訪問的專案常在過濾器或者攔截器中新增如下配置     response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allo

資源共享(CORS)安全性淺析

0×00 背景 提起瀏覽器的同源策略,大家都很熟悉。不同域的客戶端指令碼不能讀寫對方的資源。但是實踐中有一些場景需要跨域的讀寫,所以出現了一些hack的方式來跨域。比如在同域內做一個代理,JSON-P等。但這些方式都存在缺陷,無法完美的實現跨域讀寫。所以在XMLHttpRequest

資源共享CORS

1. 同源政策 1.1 含義 1995年,同源政策由 Netscape 公司引入瀏覽器。目前,所有瀏覽器都實行這個政策。 最初,它的含義是指,A網頁設定的 Cookie,B網頁不能開啟,除非這兩個網頁”同源”。所謂”同源”指的是”三個相同”。

DAY104 - 路飛學城(一)- CORS資源共享和pycharm開發vue專案

一、CORS跨域資源共享 1.什麼是CORS跨域資源共享 ​ 為了解決跨域問題,就需要CORS。 ​ CORS需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,IE瀏覽器不能低於IE10。 ​ 整個CORS通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,CORS通訊與同源的AJ

cors資源共享方法

cors是一個服務端和客戶端協作宣告的方式來確保請求的安全性。 服務端在HTTP請求頭增加一些列的請求頭資訊(例如Access-Control-Allow-Orign等),說明哪些域的請求可以接受,或哪些型別的請求可以接受。 客戶端在發起請求時,也必須在請求