您的位置:首页 > 其它

XSS(cross-site scripting,跨站脚本攻击)简单示例

2015-07-12 09:13 204 查看

什么是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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: