概述
存储型,也叫持久性。当攻击者把恶意的JS代码提交到了数据库或者redis等库里面去了以后,网页二次加载的时候,又会把这些恶意代码重写输出到浏览器里去。使正常访问者都被运行到。
代码实例
<?phperror_reporting(0);$name = $_GET["name"];if ($name){//连接服务器$conn = mysqli_connect("127.0.0.1","root","root","yichen");//检测连接if ($conn->connect_error){die("connect fail".$conn->connect_error);}//插入语句$sql_insert = "insert into yichen(name) values('$name')";if (mysqli_query($conn, $sql_insert)) {echo "insert ok !";} else {echo "Error: " . $sql_insert . "<br>" . mysqli_error($conn);}//查询内容$sql_select = "select * from yichen";$result = mysqli_query($conn,$sql_select);if ($result->num_rows > 0) {// 输出每行数据while($row = $result->fetch_assoc()) {echo "<br>". " - Name: ". $row["name"];}} else {echo "0 results";}}else{echo "give me a name";}?>
我们看一下这条语句,它把我们通过 GET 传递的参数给存到了数据库里面
$sql_insert = “insert into yichen(name) values(‘$name’)”;
之后又通过这条语句,把数据库里面的内容取出来,输出在页面上
echo “
“. “ - Name: “. $row[“name”];
而在页面上的时候被错误的解析成了 javascript 代码执行了,就弹了一个窗!
实战演练

写什么,给什么! 不错,我们写html代码就出html代码。如果写入:

