我有一個我創建的web api。只允許某個域名訪問網絡api
我想確保只有某個域可以訪問這些數據,我不希望每個人都訪問它。這是可以實現的嗎?是否推薦?如何一會去這樣做或任何人可以點我到正確的方向 - 物品等......
感謝所有
我有一個我創建的web api。只允許某個域名訪問網絡api
我想確保只有某個域可以訪問這些數據,我不希望每個人都訪問它。這是可以實現的嗎?是否推薦?如何一會去這樣做或任何人可以點我到正確的方向 - 物品等......
感謝所有
還有就是建立在版本2「的ASP.NET Web API CORS支持」(MVC5 ): http://aspnetwebstack.codeplex.com/wikipage?title=CORS%20support%20for%20ASP.NET%20Web%20API
您可以編寫自己的方法來驗證請求是否來自某個域。但我不建議將它用作敏感數據的安全性,因爲域很容易被欺騙。我強烈建議堅持使用默認的身份驗證機制,不要發明自己的身份驗證機制,但對某個域進行驗證可能是額外的驗證。
你可以驗證引薦域這樣的:
var currentReferrer = HttpContext.Current.Request.UrlReferrer.GetLeftPart(UriPartial.Path);
if (currentReferrer != requiredReferrer)
{
// Not the right domain.
}
但是,當你這樣做,請您考慮以下內容:如果請求到來
檢查HTTP引用頭看從 授權頁面通常用於嵌入式網絡設備 ,因爲它不會增加內存要求。但是,請求 忽略Referer頭部必須被視爲未經授權,因爲 攻擊者可以通過發出來自 FTP或HTTPS URL的請求來抑制Referer頭。嚴格的Referer驗證可能會導致問題 與瀏覽器或代理忽略Referer標頭隱私 的原因。此外,舊版本的Flash(9.0.18之前版本)允許Flash使用CRLF注入,使用任意HTTP請求生成GET或POST請求 標頭。[22]客戶端的類似CRLF injection 漏洞可用於欺騙HTTP請求的引用者。