为什么主流网站无法捕获 XSS 漏洞?
二十多年来,跨站脚本(简称 XSS)漏洞一直是主流网站的心头之痛。为什么过了这么久,这些网站还是对此类漏洞束手无策呢? 对于最近 eBay 网站曝出的跨站脚本漏洞,你有什么想法?为什么会出现这样的漏网之鱼?一个如此大规模的网站,不应该具备可靠的网关安全技术以阻止任何情况下的 XSS 攻击么? 即便从上世纪 90 年代开始,跨站脚本漏洞就已经为人们所熟知。时至今日,它仍在贻害为数不少的网站。大多数主流网站,包括谷歌,CNN,PayPal 以及 Facebook,都曾受过 XSS 漏洞 的影响。该漏洞也常年出现在 CWE/SANS 前 25 个最危险的编程错误、OWASP 前 10 个最致命的 Web 应用安全风险之类的榜单。 XSS 攻击与大多数应用层攻击(诸如 SQL 注入攻击)不同,因为它攻击的是应用的用户,而非应用本身或应用服务器。这类攻击会往 Web 应用的内容中注入代码,通常是 Java Script 之类的客户端代码。大多数网站都有许许多多的注入位置,包括搜索框、反馈表格,cookie 以及论坛等。借助 XSS 漏洞,黑客可以窃取数据,控制用户的会话,运行恶意代码,或操纵受害用户浏览器中显示的内容。 像 eBay 这样的网站,几乎完全基于用户产生的内容,通常在用户的项目描述部分包含许多活动内容(Active Content),比如 JavaScript 和 Flash