php存储形XSS漏洞

定义:持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或

过滤不严,那么这些代码存储到服务器中,用户访问该页面的时候触发代码执行。

防御:

      htmlspecials函数

      {

       &转换为&amp

       "转换为&auot       

       '转换为&#039

        <转换为&lt;

         >转换为&gt;

       }

有以下代码

<?php
mysql_connect('localhost','root','');
mysql_select_db("test");
mysql_query("utf8");
if(isset($_POST['submit']))
 {
     $title=$_POST['title'];
     $con=$_POST['con'];
     $sql="insert into book(id,title,con)values(NULL,'$title','$con');";
     if(mysql_query($sql))
     {}
 }
 else
 {
    $sql="select * from book";
    $row=mysql_query($sql);
    while($rows=mysql_fetch_array($row)) 
    {
        echo $rows["id"].$rows['title'].$rows['con']."</br>";
    }
     
     
 }
?>
<form action="1.php" method="post">
<input type="text" name="title"/>
<input type="text" name="con"/>
<input type="submit" name="submit"/>
</form>

这里echo没有用htmlspecialchars转换后输出,因此造成了xss

 

posted @ 2016-04-05 14:01  平何去何  阅读(509)  评论(0)    收藏  举报