2013-10-29 92 views
4

我有一個我創建的web api。只允許某個域名訪問網絡api

我想確保只有某個域可以訪問這些數據,我不希望每個人都訪問它。這是可以實現的嗎?是否推薦?如何一會去這樣做或任何人可以點我到正確的方向 - 物品等......

感謝所有

回答

1

您可以編寫自己的方法來驗證請求是否來自某個域。但我不建議將它用作敏感數據的安全性,因爲域很容易被欺騙。我強烈建議堅持使用默認的身份驗證機制,不要發明自己的身份驗證機制,但對某個域進行驗證可能是額外的驗證。

你可以驗證引薦域這樣的:

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請求的引用者。

來自:Wikipedia: Cross-site request forgery prevention