Asp.net-Mvc
獲取“從客戶端檢測到潛在危險的 Request.Path 值 (&)”
我有一個 REST 服務,當我嘗試呼叫名稱中包含**&的項目時,我收到上述錯誤,如果我沒有對****&**進行編碼,這將是有意義的
所以這將是我的電話:
http://localhost:57851/myService/Servers/myServer/Repositories/myRepository/Models/Mine%26Yours
您可以看到“Mine&Yours”已被編碼為“Mine%26Yours”,因此應該是安全的。
但是該請求正在被接收,就好像我沒有對其進行編碼一樣。
有任何想法嗎?
編輯:
無論您是否對
&符號進行編碼,對 ASP.NET 都沒有影響。看到這個答案:https ://stackoverflow.com/a/12037000/134761要在 URL 路徑中允許特殊字元,您應該像這樣修改
requestPathInvalidCharacters參數web.config:<httpRuntime requestPathInvalidCharacters="" />或者,如果您只想允許
&但不允許所有其他特殊字元:<httpRuntime requestPathInvalidCharacters="<,>,*,%,\"/>
擴展 holdenmcgrohen 答案,如果您願意,您可以將更改限制為特定路徑
<location path="documents"> <system.web> <httpRuntime requestPathInvalidCharacters="<,>,*,%,\"/> </system.web> </location>