如果需要编码的HTML标签,并将其显示在浏览器上记得
") %>
产生以下输出:
The paragraph tag: <P>
,将通过Web浏览器来显示作为:
The paragraph tag:
Server.HTMLEncode的试用版不起作用,因为它在数据位于服务器上并需要在发送到浏览器之前进行编码时才起作用。在您的示例中,数据在浏览器上,请求在验证前被阻止,然后在服务器上收到。
如果你想用户编辑文本框,然后输入HTML标签您可以通过
或在web.config中为整个应用程序禁用此:
请注意,如果没有 原因,则此ValidateRequest属性不存在。当您更改其默认值时,不安全的输入将会被接受,即 。正因为如此,你需要每一个用户的输入进行验证,以 避免交叉站点脚本攻击,如恶意 启用JavaScript,ActiveX,闪存插入或HTML
另一种聪明的解决办法就是通过JavaScript更换用户编写的文本,以确保安全性。
< tag>,而不是被认为是安全的!
function validateTxt() {
$("textarea, input[type='text']").change(function() {
html = $(this).val(); //get the value
//.replace("a" , "b") works only on first occurrence of "a"
html = html.replace(/< /g, "
html = html.replace(/
$(this).val(html); //set new value
});
}
$(document).ready(function() {
validateTxt();
});