XSS的攻击和怎么防止XSS的攻击

XSS:Cross Site Scripting【跨站脚本攻击】

一、概念

  • 黑客向HTML文件或者DOM中添加恶意脚本
  • 从而在用户浏览页面时利用插入的恶意代码,对用户实施攻击

二、分类

  • 存储型XSS攻击
    • 黑客向存在漏洞的服务器插入一段恶意JavaScript代码
    • 当用户向服务器请求资源的时候就会请求到该恶意JavaScript脚本。
    • 用户浏览页面的时候用户的Cookie等信息就会被上传到服务器。
    • 黑客拿到了用户的 cookie等信息后,就可以在别的设备登陆进行一些恶意操作
  • 反射型XSS攻击
    • 用户将一段包含有恶意代码的请求提交给web服务器
    • web服务器又将这段恶意代码反射给浏览器端。
    • 常见的有QQ群和QQ邮件中一些诱导用户点击的恶意链接
  • 基于DOM的XSS攻击
    • 基于DOM的XSS攻击是不涉及到web服务器的
    • 而是黑客通过某些手段将恶意代码直接注入到用户的页面中。
    • 有可能是通过网络劫持在页面传输过程中修改了HTML页面的内容。
    • 或者通过本地的恶意软件劫 持等方法。
    • 他们共同的特点是在web资源传输过程中或者用户使用页面过程中修改了web页面的数据。

 三、防止XSS攻击

1、服务器端对输入的脚本信息进行过滤或者编码

  过滤是将标签内的内容过滤掉,这样恶意的JavaScript代码也就无法执行了,转码是将"<",">"进行转码

2、充分利用CSP等策略【内容安全策略】

  核心思想:让服务器决定浏览器能够加载哪些资源

  CSP的功能

    限制加载其他域下的资源文件,使得即使注入了恶意脚本也无法被执行

    禁止向第三方提交信息,这样即使被注入了恶意代码,也无法将用户的Cookie发送给恶意服务器

    禁止执行内联脚本和未授权脚本

    还提供了上报机制,可以帮助我们更快地发现XSS攻击 

3、设置HttpOnly

  • 服务器可以将cookie设置为HttpOnly,HttpOnly可以保障Cookie只在http连接中被获取
  • 这样的话恶意的JavaScript代码就无法获取到用户的cookie了。

 

参考地址:前端面试题XSS攻击和防御 - 哔哩哔哩 (bilibili.com)

posted @   有只小菜猫  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示