本文简介

点赞 + 关注 + 珍藏 = 学会了


xss 是常见的攻击方式之一,不论是前端还是后端都要对此有所防备才行。

本文次要解说应用 NodeJS 开发的后端程序应该如何防备 xss 攻打。



xss演示

xss 攻击方式次要是在在页面展现内容中掺杂 js代码,以获取网页信息。

常见的攻打中央有:

  1. 电商产品评估区:某用户提交的评估带有 可执行的js代码,其余用户查看该评论时就会执行那段 js代码
  2. 博客网站:某用户在博客的题目或者内容中带有 可执行的JS代码 ,其余用户查看该博客时那段 js代码 就会被执行。


比方在输入框输出

<script>alert(1234)</script>

别的用户在本人页面要展现下面这段内容个,页面有可能会弹出一个弹窗。

这个例子只是弹出一个对话框,如果人家有歹意,获取 cookie 等信息,而后传给本人的服务器,那结果真的很重大。



xss进攻

预防措施:本义特殊字符

特殊符号转换

& -> &amp;< -> &lt;> -> &gt;" -> &quot;' -> &#x27;/ -> &#x2F;

下面我列举了几个常见的特殊字符。从下面的例子能够看出,输出了 <script> 标签后,外面的内容有可能会被执行。

如果咱们把 <script> 改成 &lt;script&gt; 那么浏览器就不把这段内容看成是可执行代码。


在日常开发中,咱们不须要本人编写本义性能的代码,只须要下载 xss 的依赖包就行。


装置 xss 依赖包

npm install xss --save


应用 xssxss 其实是一个办法,只须要把要本义的内容传入 xss 办法即可。

const xss = require('xss')const content = xss('<script>alert(1234)</script>')console.log(content)

最初输入

&lt;script&gt;alert(1234)&lt;/script&gt;


以上就是 xss攻打 在后端的进攻办法。


如果谨严一点的话,在前端也能够把文本域的内容里的特殊字符本义一遍再传给后端。

后端传给前端的内容有可能会在页面展现成 &lt;script&gt;alert(1234)&lt;/script&gt; ,这部分须要前端本人去解决。


插则花边新闻

之前看到有则新闻说 Vue 不平安,某些ZF我的项目中应用 Vue 受到了 xss 攻打。后端甩锅给前端,前端甩锅给了 Vue

起初据说是前端胡乱应用 v-html 渲染内容导致的,而 v-html 这货色官网文档也提醒了有可能受到 xss 攻打。

尤雨溪:很多人就是不看文档



举荐浏览

《NodeJS mysql须要留神sql注入》

《NodeJS 5分钟 连贯MySQL 增删改查》

《NodeJS Stream入门》

《NodeJS 操作cookie》

《NodeJS 5分钟 连贯 Redis 读写操作》

点赞 + 关注 + 珍藏 = 学会了