美文网首页Web 前端开发 让前端飞
前端基础重点回顾5:XSS、CSRF攻击

前端基础重点回顾5:XSS、CSRF攻击

作者: coolheadedY | 来源:发表于2018-01-31 16:59 被阅读21次

XSS

攻击前提
  • 攻击脚本必须添加到页面上
攻击方式
  • 跨站脚本XSS(Cross site script) 代码注入
  • script 标签注入攻击 <li><script>alert(1)</script></li>
  • 标签属性注入攻击 <img src="" onerror="alert(1)"> <p onclick="alert(2)">诱导点击</p>
  • 广告注入 <iframe src=''></iframe>
防止XSS攻击
  • 获取的数据不允许进行字符串拼接
  • 使用element.inneText方法 把数据添加到dom 中,inneText 方法会转义所有内容
  • 把所有数据里的/["'&<>]/使用正则进行转义
  • 存储数据时过滤并转义/["'&<>]/
  • 防止URL 上的参数在页面上展示 http://url?code=<p onclick="alert(2)">诱导点击</p> 这里的code query参数内容不得在页面中渲染

CSRF

攻击原理
  • 利用用户已经登录的状态 伪造请求发送给服务器进行用户操作
攻击方式
  • 跨站请求伪造(Cross site request forgery)
  • 用户已登录(cookie登录)如果没设置httpOnly cookie是根据域名和路径访问的, 无关端口
  • 伪造请求(GET, POST)
伪造GET
<img src="http://localhost:3000/csrf?data=111" alt="">
http://localhost:3000/csrf?data=111 // 直接地址栏中输入
表单伪造POST
    <form id="form" style="display: none;" action="http://localhost:3000/csrf?data=111" method="post" target="csrf">
    </form>
    <input id="btn" type="button" value="submit">
    <iframe src="" style="display: none;" name="csrf" frameborder="0"></iframe>
    <script>
      btn.addEventListener('click', (e) => {
        e.preventDefault()
        form.submit()
      })
    </script>

防止CSRF攻击

  • 请求时不仅浏览器携带cookie, 请求参数也需要把跟cookie 相关的值携带到参数中, 伪造的请求无法获取正确网站cookie的值, 比如常见约定的csrfToken
  • 使用Authorization 的token 授权
  • 提交表单的时候增加token 认证
  • 验证请求header 的Referer 携带请求来源信息

相关文章

  • 前端基础重点回顾5:XSS、CSRF攻击

    XSS 攻击前提 攻击脚本必须添加到页面上 攻击方式 跨站脚本XSS(Cross site script) 代码注...

  • 浅谈CSRF

    前端安全 常见前端安全问题有: xss攻击、 csrf攻击 两种,今天总结一下目前了解的csrf攻击方式以及规避方...

  • 01 Web 前端安全相关

    01 前端安全系列(一):如何防止XSS攻击?02 前端安全系列(二):如何防止CSRF攻击?03 AJAX请求真...

  • laravel的CSRF防护机制和延伸

    在说laravel框架里对CSRF的攻击防护之前先对XSS和CSRF攻击做一下简单的介绍。 XSS和CSRF攻击 ...

  • 常见的WEB攻击

    XSS攻击,CSRF攻击,SQL注入攻击,文件上传漏洞,DDoS攻击,其他攻击手段 1.XSS攻击 XSS(Cro...

  • 常见网络攻击

    网络安全是前端工程师需要考虑的问题,常见的网络攻击有XSS,SQL注入和CSRF等。 1. XSS XSS,Cro...

  • 前端网络高级篇(五)常见网络攻击

    网络安全是前端工程师需要考虑的问题,常见的网络攻击有XSS,SQL注入和CSRF等。 1. XSS XSS,Cro...

  • 前端网络安全学习

    1.前端攻击形式:XSS攻击、append的利用、CSRF攻击(跨站请求伪造) 我们平时开发要注意的: 开发时要提...

  • 前端安全:XSS攻击/CSRF攻击

    XSS攻击 什么是 XSS Cross-Site Scripting (跨站脚本攻击)简称XSS,是一种代码注入攻...

  • JAVA框架面试题整理之—第四篇

    168、什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击? 答: - XSS(Cross Site Sc...

网友评论

    本文标题:前端基础重点回顾5:XSS、CSRF攻击

    本文链接:https://www.haomeiwen.com/subject/bnnczxtx.html