而不是关闭 ValidateInput ,因为那样你容易受到漏洞的影响,你可以使用 Javascript 对特殊字符进行编码。这使您不会抛出错误消息:
从
客户
对于一些简单的输入(例如MyName<me@somewhere.com> 格式的电子邮件),但仍然具有内置的 MVC 功能来监视您的其他脚本注入。当然,如果您需要在服务器上以正确格式输入,则必须对其进行解码,并且在再次输出时要小心
如果已经在使用 jQuery,可以很容易地将它添加到所有输入字段中,如下所示
$("input").on("change", function() {
$(this).val(htmlEscape($(this).val()));
});
htmlEscape 这是我自己更改特殊字符的函数。
function htmlEscape(str) {
return str
.replace(/</g, '<')
.replace(/>/g, '>');
}
根据您的需要,您可能希望使用内置的 Javascript 函数 encodeURI 转义所有字符或扩展上述函数,例如:
function htmlEscape(str) {
return str
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}