web攻击-跨站脚本攻击(XSS)

什么是XSS

XSS(Cross Site Scripting,跨站脚本攻击)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。

XSS攻击是指攻击者在网站中注入恶意脚本代码,这些脚本代码会在其他用户浏览该网站时执行,从而窃取用户信息或进行恶意操作。

XSS攻击的类型:

  1. 存储型XSS(Stored XSS):恶意脚本被永久存储在目标服务器上,如数据库、评论区等。每当用户访问包含这些脚本的页面时,脚本就会被执行。
  2. 反射型XSS(Reflected XSS):恶意脚本通过URL传递,并在服务器响应中反射回来。用户点击恶意链接时,脚本即被执行。
  3. DOM型XSS(DOM-based XSS):恶意脚本直接在浏览器端的DOM中执行,通常不经过服务器的参与。

示例:

假设某网站的留言板没有对用户输入进行适当过滤,攻击者在留言中插入了如下恶意代码:

<script>alert('Your cookies: ' + document.cookie);</script>

当其他用户访问该留言板页面时,这段脚本会在用户浏览器中执行,弹出一个包含用户cookie的警告框。攻击者可以利用这些信息进行进一步的攻击。

如何防御:

  • 对用户输入进行严格的验证和过滤,避免插入恶意代码。
  • 在输出时对特殊字符进行编码,例如将<>&等字符转换为对应的HTML实体。
  • 使用内容安全策略(Content Security Policy,CSP)限制脚本的执行。

通过以上措施,可以有效地降低XSS攻击的风险。

posted @ 2021-04-13 21:59  Better-HTQ  阅读(4)  评论(0编辑  收藏  举报