【前端安全】XSS和CSRF攻击解析

XSS: Cross Site Script(跨站脚本攻击)

  • 概念: XSS攻击通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的

  • 分类:

    XSS类型 存储性 反射型 DOM型
    触发过程 黑客构造XSS脚本、用户访问携带XSS的页面 用户访问携带XSS的URL 用户访问携带XSS的URL
    数据存储 数据库 URL URL
    输出源头 后端web应用程序 后端web应用程序 前端js
    输出位置 HTTP响应中 HTTP响应中 动态构造DOM节点
    • XSS反射型攻击:
      恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
    • 存储型攻击: 恶意代码被保存到目标网站的服务器中,比较常见场景是在博客,论坛等社交网站上,比如:某CRM系统的客户投诉功能上存在XSS存储型漏洞,黑客提交了恶意攻击代码,当系统管理员查看投诉信息时恶意代码执行,窃取了客户的资料,然而管理员毫不知情,这就是典型的XSS存储型攻击。
  • 解决方法:

    • 在表单提交或者url参数传递前,对需要的参数进行过滤
    • 检查用户输入的内容中是否有非法内容

CSRF:Cross-site request forgery (跨站请求伪造)

  • CSRF攻击攻击原理及过程如下:
    • 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
    • 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
    • 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
    • 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
  • 防御CSRF攻击:
    1. 验证HTTP Referer字段: Referer记录了该 HTTP 请求的来源地址
    2. 在请求地址中添加token并验证: 在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求

你可能感兴趣的:(【前端安全】XSS和CSRF攻击解析)