更新时间:2022-08-12 来源:黑马程序员 浏览量:
XSS(Cross Site Scripting)是Web应用系统最常见的安全漏洞之一,它主要源于Web应用程序对用户输入检查和过滤不足。攻击者可以利用XSS漏洞把恶意代码(HTML代码或JavaScript脚本)注入网站中,当有用户浏览该网站时,这些恶意代码就会被执行,从而达到攻击的目的。
通常,在XSS攻击中,攻击者会通过邮件或其他方式诱使用户点击包含恶意代码的链接,例如攻击者通过E-mail向用户发送一个包含恶意代码的网站home.com,用户点击链接后,浏览器会在用户毫不知情的情况下执行链接中包含的恶意代码,将用户与home.com交互的Cookie和Session等信息发送给攻击者,攻击者拿到这些数据之后,就会伪装成用户与真正的网站进行会话,从事非法活动,其过程如图5-2所示。
图5-2 XSS攻击过程
对于XSS漏洞,最核心的防御措施就是对用户的输入进行检查和过滤,包括URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围、格式适当、符合预期的内容,对其他不符合预期的内容一律进行过滤。除此之外,当向HTML标签或属性中插入不可信数据时,要对这些数据进行相应的编码处理。将重要的Cookie标记为http only,这样JavaScript脚本就不能访问这个Cookie,避免了攻击者利用JavaScript脚本获取Cookie。