最近,一些人利用小站的一个小漏洞大肆发布广告。着实令人不爽,今天修改了几句代码,一些搞定了。

原来的代码在过滤< 和 >时,用的

  1. if((v.comment.value.indexOf ("<") == 0)||(a.b.value.indexOf (">") == 0)){   
  2.         alert("为了系统安全,不能在留言内容中包含<和>字符!");   
  3.         v.comment.focus();   
  4.         return false;  
  5.     } 

这样仅仅检查了留言内容的第一个字符,对后面的字符没有检查。所以如果提交

  1. <a herf="aaa"> a,</a> 

这样的留言,会被视为合法。修改成如下代码,问题就解决了

  1. for(var i = 0;i < v.comment.value.length ; i ++)  
  2. if ((v.comment.value.indexOf ("<") == i) || (v.comment.value.indexOf (">") == i))  
  3. {  
  4. alert("为了系统安全,不能在留言内容中包含<和>字符!");   
  5. return false;