C# ASP.Net MVC:从客户端检测到潜在危险的请求.Files值
我在asp.net页面中上载了一个文件名为“Exu 17.pdf”的文件,然后在后端使用Request.Files[0]获取文件时,出现以下错误 从客户端检测到潜在危险的Request.Files值(filename=“Exu 17.pdf”) 如果我将文件名更改为以下类型,那么工作正常C# ASP.Net MVC:从客户端检测到潜在危险的请求.Files值,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我在asp.net页面中上载了一个文件名为“Exu 17.pdf”的文件,然后在后端使用Request.Files[0]获取文件时,出现以下错误 从客户端检测到潜在危险的Request.Files值(filename=“Exu 17.pdf”) 如果我将文件名更改为以下类型,那么工作正常 “Exu 17.pdf” “ex17.pdf” “Ex&_17.pdf” “ex17.pdf” 我假设只有文件名中的被视为潜在危险 所以,我的问题是,是否有其他特殊的字符产生了这个错误 我在
- “Exu 17.pdf”
- “ex17.pdf”
- “Ex&_17.pdf”
- “ex17.pdf”
我在谷歌上搜索了这个错误,但什么也没找到。您使用的是HTML语法
…
是html编码的标记集。我建议更改它。默认情况下,MVC会尝试检测发送到服务器的可疑值,从而导致“从客户端检测到潜在的危险值”。错误
例如,不允许您发送警报(“hello”)代码>在文本输入中。有关类似错误,请参阅
因为
可用于引用,文件名Exu 17.pdf
可疑。以下是这些代码的图表(谢谢):
您可以禁用文件上载的验证:
- 我不确定使用
在ViewModel中为[allowtml]
属性赋值是否有效HttpPostedFileBase
- 您还可以尝试使用
标记操作方法[ValidateInput(false)]
或者按照phonemyatt的建议,在发布文件之前,使用客户端JavaScript删除或编码文件名中的可疑字符。是否要避免在iis中进行验证?禁用验证实际上不是一个好主意。在前端,您应该使用javascript将所有这些字符编码为Html。谢谢,在发布文件之前,我已经转义了这些字符。