Asp.net mvc ASP.NET MVC-潜在危险的请求。表单值'<';和/或'&燃气轮机';

Asp.net mvc ASP.NET MVC-潜在危险的请求。表单值'<';和/或'&燃气轮机';,asp.net-mvc,razor,encoding,Asp.net Mvc,Razor,Encoding,当我在文本区域中键入'时,会出现此错误,因此我假设是字符'导致了此错误 在我寻找修复方法时,我发现绝大多数人都建议将此添加到web.config: <httpRuntime requestValidationMode="2.0"/> 但是我担心这样做会让我面临像sql注入之类的恶意输入,所以我想知道解决这个问题的更安全的方法是什么 注:我正在使用textareafor(尽管我不确定它是否有任何区别)。您可以在视图模型中将[allowtml]属性添加到您的属性中 不管Validate

当我在文本区域中键入
'
时,会出现此错误,因此我假设是字符
'
导致了此错误

在我寻找修复方法时,我发现绝大多数人都建议将此添加到web.config:

<httpRuntime requestValidationMode="2.0"/>
但是我担心这样做会让我面临像sql注入之类的恶意输入,所以我想知道解决这个问题的更安全的方法是什么


注:我正在使用textareafor(尽管我不确定它是否有任何区别)。

您可以在视图模型中将
[allowtml]
属性添加到您的属性中


不管ValidateModel如何,都可以进行SQL注入攻击。危险在于XSS攻击。为了防止XSS攻击,您可以对HTML进行编码。

您想在textarea字段中输入一些包含危险符号的数据,然后读取它吗?用?@Yevgeniy.Chernobrivets来装饰您的模型怎么样?好吧,我到目前为止还没有考虑过读取部分,我想如果是这样的话,我可以忽略该字符。。。我可以创建一个jquery验证来阻止用户输入这些字符,但我不确定允许什么和限制什么。好吧,你必须选择,要么使用内置的验证和清理,要么自己做。您不能让asp.net验证请求,但在请求不是附加时让它通过。它无法探测到difference@Brad克里斯蒂,你能告诉我那会给我带来什么副作用吗?比如,如果我用allowtml在输入上输入'alert('a'),javascript警报会出现吗?我用SQL注入作为可能发生的坏事的一个例子,这并不是说我只是想保护自己,唯一的危险是XSS攻击,但是MVC会自动编码你的输出,除非你选择Html.Raw作为输出
[ValidateInput(false)]