我的网站前台需要用户提交一些新闻或者资料什么的,
前台我用的html编辑器是普通的html编辑器(我不想用ubb标签,也不会用),我现在想问大家的是如果前台提交的文本充许html的话,这样我的网站还安全吗?有什么办法没有啊?
想问大家如何前台充许用户提交带html标签的文本,一般用什么样的函数来检查其安全性呢?

解决方案 »

  1.   

    你去mop看看,他都过滤了什么html标签吧。某些html标签是可以让用户使用的,比如改字体颜色什么的。但某些:如<meta>,<button>,还有那一系列触发事件,以及js标签必须过滤。记得以前mop过滤的就不严格,有方法可以将js代码插进来。你直接回复个<script>while(1==1){alert('xxx')}</script>谁也进不来这贴了
      

  2.   

    你可以去查下XSS(Cross Site Scriping)相关的知识,应该对你有很大的作用。
      

  3.   

    我现在想问大家的是如果前台提交的文本充许html的话,这样我的网站还安全吗?有什么办法没有啊? 
    ============================================================================
    不安全,比如说随便加个iframe,然后指定到哪某个页面,或者加段js,种上木马.想问大家如何前台充许用户提交带html标签的文本,一般用什么样的函数来检查其安全性呢?
    =============================================
    正则不允许用户提交形如 <script> <iframe>等的标签.
      

  4.   

    preg_replace()
    str_replace()这两个函数深入了解应该就不会有以上困惑了
      

  5.   

    这两个函数我会用,但不知道需要删除哪些危险的html标签呢?
      

  6.   

    就是替换撒,第二个是正则替换
    大概要替换的就是  < > 单引号' $ : 还有一些PHP的基础符号
    正则替换就麻烦点,UBB代码就是以正则替换为基础的
    假如学过ASP就知道ASP必须过滤用户输入的文本,因为ASP不太严谨,PHP好歹还会给代码<>间加个魔术符号\,防止用户写入可执行代码
    比如别人是<script src='http://xxxxx.js'></script>
    这个放html代码里面就是可执行,页面不显示,假如是个含有恶意代码的JS,你不就惨了,替换掉<>为&lt;&gt
    那么浏览器解析就是&lt;script src....省略....&gt;
    直接作为文本输出<script src='http://xxxxx.js'></script>