• XSS攻击理解与预防


    什么是XSS攻击

    XSS跨站脚本攻击(Cross Site Scripting)的本质是攻击者在web页面插入恶意的script代码,当用户浏览该网页之时,嵌入其中的script代码就会被执行,从而达到恶意攻击用户的目的,比如读cookie,sesssion,tokens,或者网站其它敏感信息。

    XSS攻击的危害

    1、通过document.cookie盗取cookie中的信息
    2、使用js或css破坏页面正常的结构与样式
    3、流量劫持(通过访问某段具有window.location.href 定位到其他页面)
    4、ddos攻击:利用合理的客户端请求来占用过多的服务器,从而使合法用户无法得到服务器响应
    5、控制企业数据,包括读取、篡改、删除等

    XSS攻击的类型

    反射型XSS攻击

    反射型XSS漏洞常见于通过URL传递参数的功能,如网站搜索、跳转等,由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击

    反射型XSS攻击的步骤

    1、攻击者构造出特殊的URL,其中包含恶意代码
    2、用户打开有恶意代码的URL时,网站服务器端将恶意代码从URL取出,拼接在HTML返回给浏览器
    3、用户浏览器接收到响应后解析执行。混在其中的恶意代码也会被执行
    4、恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户行为,调用目标网站接口执行攻击者的指定的操作

    在这里插入图片描述

    防御反射型XSS攻击

    对输入进行检查: 对请求参数进行检查,一旦发现可疑的特殊字符就拒绝请求。
    对输出进行转义再显示: 对潜在的威胁的字符进行编码、转义

    存储型XSS攻击

    恶意脚本永久存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回执行,影响范围比反射型和DOM型XSS更大。存储型XSS攻击的原因是没有做好数据过滤:前端提交数据到服务端时,没有做好过滤,服务器端接收到数据时,在存储之前没有做过滤,前端从服务器请求到数据时,没有过滤输出

    存储型XSS攻击步骤

    1、攻击者将恶意代码提交到目标网站的数据库中
    2、用户打开目标网站时,网站服务端将恶意代码从数据库中取出,拼接在HTML中返回给浏览器
    3、用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行
    4、恶意代码窃取用户数据并发送到攻击者的网站,或冒充用户行为,调用目标网站接口等

    在这里插入图片描述

    防御存储型XSS攻击

    服务器接收到数据在存储数据库之前进行转义或过滤
    前端接收到服务器传递过来的数据,在展示页面之前先进行转义或过滤

    DOM型XSS攻击

    DOM型XSS攻击实际上就是前端JavaScript代码不够严谨,把不可信的内容插入到了页面

    DOM型XSS攻击步骤

    1、 攻击者构造出特殊数据,其中包含恶意代码
    2、用户浏览器执行了恶意代码
    3、窃取用户数据并发送到攻击者的网站或冒充用户

    防疫DOM型XSS攻击

    在使用.innerHTML outerHTML document.write()时不要把不可信的数据插入到HTML页面中,应尽量使用.textContent .setAttribute()等

  • 相关阅读:
    Java 简单实现一个 TCP 回显服务器
    算法 旋转矩阵
    vue3 script setup 使用tinymce富文本编辑器-f
    六、《图解HTTP》一些关于Web的攻击手段
    嵌入式系统在智慧城市建设中的关键角色与挑战
    在c++项目中你必须真正使用的15个c++特性
    mysql加密存储敏感数据
    Linux网络和安全:配置、远程访问与防御指南
    2.SQL表格属性
    SpringBoot统一异常处理详解
  • 原文地址:https://blog.csdn.net/m0_74787523/article/details/127721695