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 的最重要手段之一。

相关推荐
七夜zippoe7 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥7 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
Fcy6489 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满9 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠9 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥9 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey9039 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技10 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀11 小时前
Linux环境变量
linux·运维·服务器
zzzsde11 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器