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

来源:互联网 发布:网络机顶盒apk 编辑:程序博客网 时间:2024/05/18 02:31

什么是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!

0 0
原创粉丝点击