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

相关推荐
jiayong231 小时前
DevOps体系详解01-核心概念与价值
运维·devops
jiayong232 小时前
DevOps体系详解02-技术架构与工具链
运维·架构·devops
pride.li2 小时前
开发板和Linux--nfs服务挂载
linux·运维·服务器
looking_for__3 小时前
【Linux】应用层协议
linux·服务器·网络
云泽8084 小时前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器
j_xxx404_4 小时前
Linux:基础IO
linux·运维·服务器
angushine5 小时前
银河麒麟V10创建用户
运维
Trouvaille ~6 小时前
【Linux】网络编程基础(二):数据封装与网络传输流程
linux·运维·服务器·网络·c++·tcp/ip·通信
久绊A6 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
万邦科技Lafite6 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台