这个编辑器没有屏蔽掉<script></script>等字符,用户可以在其中插入js脚本,对网站安全有影响。尽管我把源码编辑框禁掉了,但是用户还是可以通过自己整个网页复制来插入脚本。
请问怎么屏蔽掉类似字符?

解决方案 »

  1.   

    我的思路也是提交到服务器再处理。
    可是我不知道用哪个函数可以不区分大小写的替换掉这些字符。
    比如,用户可以写成<Script>也可以写成<sCript>。
    能给出替换的具体的代码吗?
      

  2.   

    兄弟想的有点太多了!你没有必要把<Script>全搞没有了!
    你只要把< > ?/之类的会换了就行了!strContent=strContent.Replace("&","&amp");
    strContent=strContent.Replace("'","''");
    strContent=strContent.Replace("<","&lt");
    strContent=strContent.Replace(">","&gt");
    strContent=strContent.Replace("chr(60)","&lt");
    strContent=strContent.Replace("chr(37)","&gt");
    strContent=strContent.Replace("\"","&quot");
    strContent=strContent.Replace(";",";");
    strContent=strContent.Replace("\n","<br/>");
    strContent=strContent.Replace(" ","&nbsp");
    return strContent;
      

  3.   

    楼上那位,FREETEXTBOX是个HTML编辑器,里面有很多HTML标记,你要是把<和 >屏蔽了, 那就失去了它的意义了。
      

  4.   

    显示和转换,
    HttpContext.Server.HtmlEncode(string);
    HttpContext.Server.HtmlDecode(string);
      

  5.   

    我只想替换掉<script>之类的标签,其他的html标签要保留,怎么做?
    如果是strContent=strContent.Replace("<script>","&ltscript&gt");
    那么,用户写成<Script>也就替换不掉了吧?
      

  6.   

    用正则表达式替换就可以了mystr = Regex.Replace(mystr, "[s|S][c|C][r|R][i|I][p|P][t|T]", "script")