【安全】如何预防XSS攻击?

安全:

问题:常见的web前端攻击方式有哪些?

  1. XSS跨站请求攻击
  2. XSRF跨站请求伪造

XSS攻击:

  1. 一个博客网站,我发表一篇博客,其中嵌入<script>脚本
  2. 脚本内容:获取cookie,发送到我的服务器(服务器配合跨域)
  3. 发布这篇博客,有人查看它,我轻松收割访问者的cookie

演示代码:

初始化:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>XSS 演示</title>
</head>
<body>
    
     <p>一段文字1</p>
     <p>一段文字2</p>
     <p>一段文字3</p>
     <script>alert(document.cookie);</script>

</body>
</html>

效果:
在这里插入图片描述
别人来看博客,就可以获取来访者的Cookie(包括一些个人信息),发送到我的服务器。

这就是XSS攻击。

怎么预防XSS呢?

1.	替换特殊字符,如< 变为 &lt; >变为&gt;
2.	<script>变为&lt,script&gt;直接显示,而不会作为脚本执行
3.	前端要替换,后端也要替换,都做总不会有错 (提醒)

那么替换特殊字符这个工作谁比较做合适?没有更合适,都做,没有问题,前端也要替换,后端也要替换;前端什么时候替换,可以在显示的时替换;后端则在存储的时候替换。

例子:前端做替换

演示代码:
在这里插入图片描述
效果:
在这里插入图片描述

这段script显示出来了,为什么呢?因为在html中,这个&lt;&gt;代表了就是要显示左括号< 和 右括号 >,浏览器会自动解析这两个特殊字符。

在这里插入图片描述
字符串的形式显示出来。不会作为一个脚本来攻击

xss工具推荐:npm 上搜索 xss

猜你喜欢

转载自blog.csdn.net/weixin_43352901/article/details/107455283