XSS原理
跨站脚本攻击(Cross-Site Scripting),是一种网站应用程序的安全漏洞,是代码注入攻击的一种。
XSS的种类:
反射型XSS:
- 非持久型XSS(需要自行触发,输入-输出)。 从目标服务器通过错误信息、搜索结果等等方式“反射”出来的。
- 非持久性:这种攻击方式往往只具有一次性。
- 方式:攻击者通过邮件的方式将含有注入脚本的恶意的链接发送给受害者,受害者点击链接,注入脚本被传送到目标服务器上,然后服务器将注入脚本“反射”到受害者的浏览器上,从而在该浏览器上执行这段脚本。
- Eg:http://www.baidu.com?input=<script>alert(document.cookie)</script>
存储型XSS:
- 持久型XSS(输入-存到数据库-输出)
- 通过输入将脚本存储到数据库,当别人看到内容时,就会被恶意攻击,将受害者的信息或其他,发送到攻击者的服务器。
DOM-XSS:
- DOM-based XSS漏洞属于文档对象模型的一种漏洞,它涉及两个层次,HTML层和JavaScript层,更准确的说是服务器脚本和客户端脚本。
- 用户请求了一个被攻击者设计好的URL,其中包含嵌入式Javascript,攻击者可以使用脚本进行获取用户Cookie
钓鱼:
- 诈骗用户输入一些敏感信息,将用户输入的用户名、密码等敏感信息发送给攻击者。
跨站请求伪造:
- Cross-SiteRequest Forgery CSRF,它属于XSS的一种衍生,方式就是脚本伪造受害者的身份发送一个合法的请求
注入恶意软件:
- 通过XSS攻击,攻击者可以在脚本中引入一些恶意软件,比如:“病毒”,“木马”,“蠕虫”等等,
应付以上攻击的方法:
- 对于反射型的XSS以及一些DOM XSS,一般建议是开发一些自动化的工具进行扫描,并辅以手工分析,另一方面可以使用搜索引擎进行寻找,具体可见白帽子。
- 对于存储型的:很多是使用富文本编辑器发起,所以要建议使用AntiXSS类似的类库进行输入过滤。
综合网络技术文章,如有错误,敬请指正,非常感谢!