雖然 [HttpPost]
屬性透過限制 HTTP 請求類型提供一定程度的保護,但不足以完全保護 JSON 回應。 JsonRequestBehavior
類別對於緩解 JSON 劫持風險至關重要,這是一種利用透過 HTTP GET 請求公開的 JSON 資料的安全漏洞。
ASP.NET MVC 對於 JSON 回應的預設設定 DenyGet
提供了針對此攻擊的重要保護。 如果您的操作方法處理敏感資訊,JSON 劫持會帶來重大的安全風險。 在覆蓋預設 DenyGet
行為之前,請仔細評估允許 GET 存取的影響。
超越[HttpPost]
:
[HttpPost]
屬性旨在阻止 HTTP GET 請求,但其局限性使其容易受到 JSON 劫持。 現代瀏覽器(包括 Firefox 21、Chrome 27 和 IE 10)本質上並未將 JSON 回應視為敏感,從而允許惡意行為者繞過 [HttpPost]
並透過 GET 請求檢索 JSON 資料。
安全地啟用 GET 要求:
如果您的操作方法不處理敏感數據,則允許 GET 請求可能是可以接受的。 但是,使用明確 JsonRequestBehavior.AllowGet
參數仍然是最佳實踐,原因有兩個:
DenyGet
。 重點:
JsonRequestBehavior
是針對 JSON 劫持的重要安全措施。 預設 DenyGet
設定提供了固有的保護,但全面了解相關風險以及明確 JsonRequestBehavior
設定的策略性使用對於強大的應用程式安全性至關重要。
以上是JSON劫持:為什麼JSONREQUESTBEHAVIOR對於安全JSON回復至關重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!