- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 asp.net 页面中上传了一个文件名为“Ex&#_17.pdf”的文件,然后在后端使用 Request.Files[0] 获取文件时出现以下错误。
从客户端检测到具有潜在危险的 Request.Files 值 (filename="Ex&#_17.pdf")
如果我将文件名更改为以下类型,那么它工作正常。
我假设只有文件名中的 &# 被视为潜在危险。
所以,我的问题是,是否还有任何其他特殊字符会产生此错误。
我用谷歌搜索了这个错误,但一无所获。
最佳答案
默认情况下,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 , 文件名 Ex&#_17.pdf
是可疑的。这是这些代码的图表(感谢 Train):The HTML Coded Character Set
您可以禁用文件上传验证:
我不确定是否归因于 HttpPostedFileBase
ViewModel 中的属性 [AllowHtml]
会工作。
您也可以尝试用 [ValidateInput(false)]
标记 Action 方法.
或者按照 phonemyatt 的建议,在发布文件名之前使用客户端 JavaScript 删除或编码文件名中的可疑字符。
关于c# - ASP.Net MVC : A potentially dangerous Request. 从客户端检测到文件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59376020/
我是一名优秀的程序员,十分优秀!