A potentially dangerous Request.Form value was detected from the client (Body="<b></b>").
当我尝试在我的评论字段中输入<b></b>
之类的内容并发送它时,会发生此错误。我搜索过,我发现只有完全禁用危险数据的验证,但我不想禁用它,因为那时我的网站容易受到攻击。
我想要的是在发送之前对其进行编码沿着这些线,所以它将发送数据,只是编码。
答案 0 :(得分:11)
如果您使用的是.net 4,您可以使用[AllowHtml]来装饰您的模型,这将只允许该特定属性。然后,您可以在控制器逻辑中对其进行清理。
public class MyViewModel
{
public string prop1 { get; set; }
[AllowHtml]
public string prop2 { get; set; }
}
答案 1 :(得分:7)
为什么不简单地使用HttpUtility.HtmlEncode方法?
string encodedHTML = HttpUtility.HtmlEncode(unencodedString)
您也可以查看Microsoft的Anti-XSS Library。
答案 2 :(得分:0)
如何在提交按钮上添加javascript事件,该事件在发送表单之前对文本值进行编码?
尝试encodeURI或encodeUriComponent