XSS简记

249 阅读1分钟

XSS 跨站脚本(Cross Site Scripting)

三种入侵方法:

  1. 储存类

    用户上传恶意代码到服务器保存,待其他用户在浏览/操作时,运行该代码,盗窃用户信息或做出恶意行为

  2. 反射类

    用户输入一段恶意代码传到服务器,服务器不识别,将代码返回输出到DOM,导致页面运行了这段代码,破坏页面运行

  3. 基于DOM

    HTML被中间商劫持了,加入了一段代码,造成攻击行为

如何防御:

  1. 不信任用户的输入,输入需要被转码后再传到后台
  2. HTTPS传输,避免中间人劫持
  3. CSP(内容安全策略)
    • 限制加载其他域下的资源文件,这样,即使黑客插入了一个 javascript 文件,也无法被加载了
    • 禁止向第三方域提交数据,这样用户数据也不会外泄
    • 禁止执行内联脚本和未授权的脚本,还可以提供上报机制,可以帮助我们尽快知道有哪些 XSS 攻击,以便尽快修复
  4. 使用 HttpOnly 属性。HttpOnly是包含在Set-Cookie HTTP响应头文件中的附加标志。生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险(如果浏览器支持)。

参考:

为什么cookie会有httponly属性?真实案例解释XSS的三种攻击