XSS & CSRF

XSS (Cross Site Scripting)跨站点脚本攻击

  1. XSS跨站点脚本攻击本质上是一种注入攻击,即人类的自然语言和计算机指令夹杂在一起, 相关环境在执行代码的时候执行了用户输入的脚本,这些恶意的脚本可能注入在表单、请求的数据包或者url、dom属性上
    1. <input/>标签用来记录用户输入的自然语言,但是恶意使用者可以在input中填写<script>alert("xss")</script>来让浏览器执行自己的脚本
    2. http://xxx/search?keyword="><script>alert('XSS');</script>
    3. <a href="javascript:alert(&#x27;XSS&#x27;)">跳转...</a>
  2. XSS的防御
    1. 主要依靠转义让恶意脚本被转化为非指令文本("< 变成 & quot;& gt;),这样浏览器就无法执行。

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

  1. 当服务器在response中向浏览器写入了cookie信息后, 那么浏览器下次发起http请求时会根据规则自动带上这些cookie信息, 这是SCRF能成功的本质。

  2. 用户在A网站登录成功后,A的浏览器记录了授权认证信息,此时用户打开恶意网站B,B发起了指向A网站服务器的恶意请求(这个请求携带了授权认证信息),这样就造成了跨域请求伪造

  3. CSRF的防御

    1. 请求中需要携带额外的认证信息,比如token
    2. 通过referer头来拒绝响应非信任的请求来源
面试知识准备
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。