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

相关推荐
江湖有缘8 分钟前
Docker实战 :使用Docker部署OneTerm堡垒机
运维·docker·容器
泡沫冰@11 分钟前
ECS 的介绍和使用
linux·服务器·网络
姜太小白36 分钟前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
土星云SaturnCloud43 分钟前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
fengyehongWorld1 小时前
Linux 终端快捷键
linux·运维
hyf3266332 小时前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
为自己_带盐2 小时前
安敢越雷池一步?浅尝雷池WAF社区版
运维·web安全
NiceCloud喜云3 小时前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
easy_coder3 小时前
Linux LVM 知识文档
linux·运维
小小的木头人4 小时前
Ubuntu 使用 udev + systemd + UUID 实现 USB 硬盘自动挂载
linux·运维·ubuntu