XSS: 又叫跨站攻击,根据攻击类型分为以下三类:
1. 反射型 XSS -服务端没有把用户的输入数据进行标签过滤,直接在页面上输出。可能存在恶意代码的链接,诱导其他人点击进而实施攻击;
2. 存储型 XSS – 常见于博客系统中,黑客将含有恶意代码的数据直接写入 文章 、评论中 存储在服务器数据库中,所有浏览这个文章,查看这个的用户都会在浏览器上插入带有恶意攻击代码。
3. 基于DOM的 XSS跨站脚本攻击-通过修改DOM节点数据信息而形成的XSS攻击。
XSS在线竞赛平台:http://xss-quiz.int21h.jp
解题思路:
http://blog.csdn.net/yd0str/article/details/17297971
XSS防范:
1. 利用HttpOnly ,HttpOnly是在set-cookie时进行标记,这样的标记 使得浏览器将禁止页面的JavaScript访问这类Cookie,解决了黑客利用脚本盗用cookie会话行为; 引用于PHP源码文档中的说明:
* @param httponly bool[optional] <p>
* When true the cookie will be made accessible only through the HTTP
* protocol. This means that the cookie won't be accessible by
* scripting languages, such as JavaScript. This setting can effectively
* help to reduce identity theft through XSS attacks (although it is
* not supported by all browsers). Added in PHP 5.2.0.
* true or false
2. 完善的输入输出检查
防范基于反射型XSS 和 存储型XSS:
必要的输入检查,对帐号密码信息等输入数据的合法性检查。比如:只允许下划线,字母,数字等数据规范,不允许不合规范的数据输入。
必要的输出检查,对取出来的信息进行HTML编码处理,将可能存在导致XSS跨站脚本攻击的恶意字符进行编码,对某些可能造成XSS攻击的字符进行过滤。
防范基于DOM的XSS:
依然把用户要展现出来的信息进行编码处理,输入的数据进行合法检测。
小结:初步了解XSS,慢慢学习ing!!