当前位置: 首页 > news >正文

Web之防XSS(跨站脚本攻击)

Web之防XSS(跨站脚本攻击)

一、概念

XSS(跨站脚本攻击) 是最常见的 Web 攻击之一。它的原理是:
攻击者把恶意的 JavaScript 脚本注入到页面中,让浏览器在用户端执行,从而窃取 cookie、伪造操作、劫持会话等。

例子:

比如你的页面有个输入框,用户输入内容后直接显示在页面上:

<p>用户留言:{{ message }}</p>

如果用户输入:

<script>alert('你被黑了')</script>

那么页面会变成:

<p>用户留言:<script>alert('你被黑了')</script></p>

浏览器就会执行恶意脚本,造成 XSS 攻击。

二、防御方法

1、输出转义(Output Encoding

所谓 输出转义,就是在 页面渲染时,把用户输入中的特殊符号(< > " ' & 等)转成安全的 HTML 实体。

  • < 转义成 &lt;
  • > 转义成 &gt;
  • " 转义成 &quot;
  • ' 转义成 &#x27;
  • & 转义成 &amp;

这样用户输入的脚本就不会被执行,而是当普通文本显示。

当输入<script>alert('你被黑了')</script>

那么会有<p>用户留言:&lt;script&gt;alert('你被黑了')&lt;/script&gt;</p>

而不会执行脚本。

​​​​​​​2、在常见框架里的实现

<p>{{ message }}</p>   <!-- 自动转义,安全 -->

<p v-html="message"></p> <!-- 不转义,有风险 -->

所以输出转义 = 在渲染到页面前,把危险字符转成 HTML 实体,避免脚本被执行。
它是防御 XSS 的最重要手段之一。

http://www.dtcms.com/a/394061.html

相关文章:

  • 使用 AI 对 QT应用程序进行翻译
  • Windows下游戏闪退?软件崩溃?游戏环境缺失?软件运行缺少依赖?这个免费工具一键帮您自动修复(DLL文件/DirectX/运行库等问题一键搞定)
  • 【从入门到精通Spring Cloud】统一服务入口Spring Cloud Gateway
  • setfacl 命令
  • Photoshop - Photoshop 分享作品和设计
  • 【Agent 设计模式与工程化】如何做出好一个可持续发展的agent需要考虑的架构
  • 【Camera开发】疑难杂症记录
  • 如何提高自己的Java并发编程能力?
  • Polkadot - ELVES Protocol详解
  • springBoot图片本地存储
  • 蝉镜-AI数字人视频创作平台
  • Linux入门(五)
  • MySqL-day4_03(索引)
  • Vue 深度选择器(:deep)完全指北:从“能用”到“用好”
  • [Nodejs+LangChain+Ollama] 1.第一个案例
  • 设计模式2.【备忘录模式】
  • Spring Boot 入门:快速构建现代 Java 应用的利器
  • Redis 实例 CPU 飙高到 90%,如何排查和解决?
  • 中国女篮备战全运会,宫鲁鸣重点培养年轻核心
  • 【Qt】常用控件1——QWidget
  • 9.21关于大模型推理未来的思考
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘uvicorn’ 问题
  • 变分自编码器(VAE):生成模型的另一条技术路线
  • 【LVS入门宝典】LVS NAT模式实战指南:ip_forward、iptables与SNAT、DNAT规则配置详解
  • 【Android】BottomSheet的三种使用
  • Spring MVC 九大组件源码深度剖析(八):RequestToViewNameTranslator - 视图名转换的奥秘
  • 在Linux环境下安装和卸载DMETL5数据迁移工具
  • 《计算》第五六章读书笔记
  • daily notes[47]
  • 模电基础:放大电路的分析方法---图解法