ASP.Net MVC:从客户端检测到具有潜在危险的 Request.Files 值
ASP.Net MVC : A potentially dangerous Request.Files value was detected from the client
我在我的 asp.net 页面上传了一个文件,文件名为 "Ex&#_17.pdf" 然后在后端使用 Request.Files[0] 获取文件时出现以下错误。
从客户端(文件名="Ex&#_17.pdf")检测到一个潜在危险的 Request.Files 值
如果我将文件名更改为以下类型,那么它工作正常。
- "Ex&_#_17.pdf"
- "Ex#&_17.pdf"
- "Ex&_17.pdf"
- "Ex#_17.pdf"
我认为只有文件名中的 被视为具有潜在危险。
所以,我的问题是,是否有任何其他特殊字符会产生此错误。
我用谷歌搜索了这个错误,但一无所获。
您使用 HTML special characters
的语法
&#...
是 html 编码标记集。我建议更改它。
默认情况下,MVC 会尝试检测发送到服务器的可疑值,从而导致“从客户端检测到潜在危险值。”错误。
例如,您不能在文本输入中发送 <script>alert('hello');</script>
。有关类似错误,请参阅 ASP.NET MVC A potentially dangerous Request.Form value was detected from the client when using a custom modelbinder。
因为&#___;
可以用来引用一个HTML Entity, the filename Ex&#_17.pdf
is suspect. Here is a chart of these codes (thanks Train): The HTML Coded Character Set
您可以禁用文件上传验证:
我不确定在 ViewModel 中使用 [AllowHtml]
属性 HttpPostedFileBase
属性 是否可行。
你也可以尝试用[ValidateInput(false)]
标记Action方法。
或者按照 phonemyatt 的建议,使用客户端 JavaScript 在文件名中删除或编码可疑字符,然后再发布。
我在我的 asp.net 页面上传了一个文件,文件名为 "Ex&#_17.pdf" 然后在后端使用 Request.Files[0] 获取文件时出现以下错误。
从客户端(文件名="Ex&#_17.pdf")检测到一个潜在危险的 Request.Files 值
如果我将文件名更改为以下类型,那么它工作正常。
- "Ex&_#_17.pdf"
- "Ex#&_17.pdf"
- "Ex&_17.pdf"
- "Ex#_17.pdf"
我认为只有文件名中的 被视为具有潜在危险。
所以,我的问题是,是否有任何其他特殊字符会产生此错误。
我用谷歌搜索了这个错误,但一无所获。
您使用 HTML special characters
的语法&#...
是 html 编码标记集。我建议更改它。
默认情况下,MVC 会尝试检测发送到服务器的可疑值,从而导致“从客户端检测到潜在危险值。”错误。
例如,您不能在文本输入中发送 <script>alert('hello');</script>
。有关类似错误,请参阅 ASP.NET MVC A potentially dangerous Request.Form value was detected from the client when using a custom modelbinder。
因为&#___;
可以用来引用一个HTML Entity, the filename Ex&#_17.pdf
is suspect. Here is a chart of these codes (thanks Train): The HTML Coded Character Set
您可以禁用文件上传验证:
我不确定在 ViewModel 中使用
[AllowHtml]
属性HttpPostedFileBase
属性 是否可行。你也可以尝试用
[ValidateInput(false)]
标记Action方法。
或者按照 phonemyatt 的建议,使用客户端 JavaScript 在文件名中删除或编码可疑字符,然后再发布。