有一个功能htmlspecialchars,它将字符编码到他们的html等价物。例如<
变为<
此外,您可能想要清除任何可疑标记。我前一段时间写了一个简短的js函数来做这个项目(绝不是全包的!)你可能想要根据你的需要来编辑它,或者根据你的需要编辑它...
<script language="javascript" type="text/javascript">
function Button1_onclick() {
//get text
var text = document.getElementById("txtIn").value;
//wype it
text = wype(text);
//give it back
document.getElementById("txtOut").value = text;
}
function wype(text) {
text = script(text);
text = regex(text);
return text
}
function script(text) {
var re1 = new RegExp('<script.*?>.*?</scri'+'pt>', 'g');
text = text.replace(re1, '');
return text
}
function regex(text) {
var tags = ["html", "body", "head", "!doctype", "script", "embed", "object", "frameset", "frame", "iframe", "meta", "link", "div", "title", "w", "m", "o", "xml"];
for (var x = 0; x < tags.length; x++) {
var tag = tags[x];
var re = new RegExp('<' + tag + '[^><]*>|<.' + tag + '[^><]*>', 'g');
text = text.replace(re, '');
}
return text;
}
</script>
不正确。通常会有一个AJAX调用或一个表单提交将html发送到服务器。攻击者可以轻松修改html以包含任意的javascript代码。如果您不在服务器端进行过滤,则存在存储的XSS问题。 – 2011-02-26 18:13:37