我的网站上有一个简单的电子邮件表单,上面有mvc c#。
如果我添加到文本框alert(“test”),我会得到以下异常:
A potentially dangerous Request.Form value was detected from the client (Message="<script>alert("test"...").
我不希望用户能够插入javascript。我需要html编码我会在这个字段上做这个
@Html.TextAreaFor(model => model.Message, new { @style = "width:800px;height:300px;" })
答案 0 :(得分:2)
选项1:查看接受的答案: HTML-encoding lost when attribute read from input field
选项2:将[AllowHtml]属性放在绑定到此文本框的模型项上,并将该值放入控制器中,您可以使用HtmlEncode。
选项3:将[ValidateInput(false)]属性放在您的控制器操作上,无论如何都可以通过,然后您可以对所有内容进行自定义验证
答案 1 :(得分:0)
使用System.Web.HttpUtility.HtmlEncode对所有用户输入进行编码,避免使用XSS攻击。