过滤特殊字符的JS代码
发表于2010-11-09 10:11:53阅读43133次
最近,一些人利用小站的一个小漏洞大肆发布广告。着实令人不爽,今天修改了几句代码,一些搞定了。
原来的代码在过滤< 和 >时,用的
- if((v.comment.value.indexOf ("<") == 0)||(a.b.value.indexOf (">") == 0)){
- alert("为了系统安全,不能在留言内容中包含<和>字符!");
- v.comment.focus();
- return false;
- }
这样仅仅检查了留言内容的第一个字符,对后面的字符没有检查。所以如果提交
- a <a herf="aaa"> a,</a>
这样的留言,会被视为合法。修改成如下代码,问题就解决了
- for(var i = 0;i < v.comment.value.length ; i ++)
- if ((v.comment.value.indexOf ("<") == i) || (v.comment.value.indexOf (">") == i))
- {
- alert("为了系统安全,不能在留言内容中包含<和>字符!");
- return false;
- }