本文主要是介绍XSS(cross-site scripting,跨站脚本攻击)简单示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是XSS
XSS(cross-site scripting),跨站脚本攻击,是Web安全中很重要的一个议题。
这篇文章演示了如何利用脚本注入来攻击一个网站,以及如何抵御这种注入攻击。
网站源代码
<?php
$xss = isset($_POST['xss']) ? $_POST['xss'] : '';
if ($xss) {file_put_contents('post.data',$xss);echo "Saved!";exit;
}
?>
<html>
<head></head>
<body>
<h2>Your input</h2>
<?php
$xss = file_get_contents('post.data');
?>
<p><?=$xss?></p>
</body>
</html>
注入可执行脚本
用POSTMAN将数据POST到网站,xss的值如下:
hello</p><script type="text/javascript">alert("abc")</script><p>
可以看到,xss的值包含了一段javascript代码
访问网站
你会发现网站上弹出了alert对话框。
如何抵御
对html特殊字符进行转义,php为我们提供了方法htmlspecialchars()。
<?php
$xss = isset($_POST['xss']) ? $_POST['xss'] : '';
$xss = htmlspecialchars($xss);
if ($xss) {file_put_contents('post.data',$xss);echo "Saved!";exit;
}
?>
重新提交数据
访问网站,刚才的输入原封不动的显示在网页上了,Good job!
这篇关于XSS(cross-site scripting,跨站脚本攻击)简单示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!