Asp.net-Mvc

獲取“從客戶端檢測到潛在危險的 Request.Path 值 (&)”

  • July 3, 2019

我有一個 REST 服務,當我嘗試呼叫名稱中包含**&的項目時,我收到上述錯誤,如果我沒有對****&**進行編碼,這將是有意義的

所以這將是我的電話:

http://localhost:57851/myService/Servers/myServer/Repositories/myRepository/Models/Mine%26Yours

您可以看到“Mine&Yours”已被編碼為“Mine%26Yours”,因此應該是安全的。

但是該請求正在被接收,就好像我沒有對其進行編碼一樣。

有任何想法嗎?

編輯:

這與(獲取“從客戶端檢測到潛在危險的 Request.Path 值(&)”不同)

無論您是否對&符號進行編碼,對 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>  

引用自:https://stackoverflow.com/questions/33257811