在服务器端,取text的时候过滤下
将接受到的<?php作为单词过滤掉。

解决方案 »

  1.   

    将接受到的<?php作为单词过滤掉。但别人可以用 <?phP pHp PHp  之类的,很多的组合。如何用正则表达表来过滤????哪位大侠有没有现成的函数?
      

  2.   

    guo lv yihou zai chun dao shujuku zhong
      

  3.   

    先用htmlspecialchars()处理再进数据库
      

  4.   

    先用htmlspecialchars()处理再进数据库
    那修改时呢???
      

  5.   

    也许是我的表达不好,大家都没太明白我说的意思。是这样的。
    如一个用户的签名吧。我用 varchar(255)来保存。
    在界面上,我是用一个 textarea 
    如果这时有人在这个 textarea 中输入 </textarea><?php unlink('文件名'); ?>
    htmlspecialchars()处理再进数据库 把就是把 < 转成 &lt > 变成 &gt如果这时用户再修改签名。
    这时 一般用 htmlentities 再把字符串变回来。这时在这个 文件中就成了 
    <textarea name='fds'>
       </textarea><?php unlink('文件名'); ?>
    </textarea>这样。这样会不会把文件给删了???
      

  6.   

    直接输出文件内容,怎么会执行php代码呢
      

  7.   

    <textarea name='fds'>
       </textarea><?php unlink('文件名'); ?>
    </textarea>--------------------------------因为第一个 </textarea> 就把这个 textarea 给关了。就算它不会执行这句 php ,但这时显示完全就乱了呀。
      

  8.   

    sql inject用intval
    php代码可以解吸吗 把< >替换成html的就是了
      

  9.   

    直接用htmlspecialchars就可以了啊
      

  10.   

    不会执行的呀,怎么会有危险呢??
    然后用htmlspecialchars过滤下
      

  11.   

    1.首先在保存数据之前将数据过滤,可以使用addslashes函数。
    2.输出数据的时候使用htmlspecialchars()函数,将其转换为html字符!example:
    一.
      $qry_sql=addslashes($_POST['username']);
      mysql_query($qry);二.
      <textarea><?php htmlspecialchars($str_content) ?></textarea>个人建议保存数据时保存原始数据,在显示的时候加以处理!
      

  12.   

    这个,呵呵
    至少我试验的结果代码没有执行阿,所以,可能楼主得到的信息有误。<style>
    body{font:12px verdana;}
    </style>
    <PRE>
    <?phpif($_POST['check']==1){
    $str = file_get_contents('t.txt');$securinfo = $str;echo ($str);echot ($securinfo);
    echo ('<BR>查看生成的html,可以发现没有执行,<BR>检查当前目录下,如果存在kaotest目录则表示语句执行了['.$securinfo.']');}
    else{
    $info = $_POST['info'];
    $securinfo = $info;
    //$securinfo = addslashes($info);
    $fp = fopen('t.txt','wb');
    fwrite($fp,$securinfo);
    }
    ?>
    <FORM METHOD=POST ACTION="?"><input type="hidden" name="check" value="1">
    <INPUT TYPE="submit" value="校验是否执行">
    </FORM>
    <FORM METHOD=POST ACTION="?"><TEXTAREA NAME="info" ROWS="10" COLS="80">
    <?php echo '<?php mkdir("kaotest");echot("end come");?>';?>
    </TEXTAREA>
    <INPUT TYPE="submit">
    </FORM><?php
    function echot($str){
    echo '<TEXTAREA NAME="info" ROWS="10" COLS="80">'.$str.'</textarea>';
    }
    ?>