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!相关文章推荐
- 移动客户端中长连接技术(一)
- Android NDK C++ 开发利器:Android Studio
- Java多线程编程中使用DateFormat类
- 一起talk GDB吧(第七回:GDB监视功能)
- COJ 0252 HDNOIP201304阻断传染
- 安卓4.X环境搭建(MyEclipse)
- MyEclipse调整项目的顺序
- 360网盘书籍分享
- Tachyon:Spark生态系统中的分布式内存文件系统
- Amazon Linux下安装tmux
- TabBar Item 图片大小不正常
- 【Android Studio】代码混淆与多渠道打包(二)
- 通用权限管理系统 适合众多行业 ,生鲜,汽配,仓储配送
- LeetCode java Longest Substring Without Repeating Characters
- java异常处理
- Linux文件打包与压缩
- GStreamer应用开发手册学习笔记之一
- iOS 返回一张可以随意拉伸不变形的图片 方法
- ubuntu下脚本学习记录
- php学习之路:php在iconv功能 详细解释