本文简介
点赞 + 关注 + 珍藏 = 学会了
xss
是常见的攻击方式之一,不论是前端还是后端都要对此有所防备才行。
本文次要解说应用 NodeJS
开发的后端程序应该如何防备 xss
攻打。
xss 演示
xss
攻击方式次要是在在页面展现内容中掺杂 js 代码
,以获取网页信息。
常见的攻打中央有:
- 电商产品评估区:某用户提交的评估带有
可执行的 js 代码
,其余用户查看该评论时就会执行那段js 代码
。 - 博客网站:某用户在博客的题目或者内容中带有
可执行的 JS 代码
,其余用户查看该博客时那段js 代码
就会被执行。
比方在输入框输出
<script>alert(1234)</script>
别的用户在本人页面要展现下面这段内容个,页面有可能会弹出一个弹窗。
这个例子只是弹出一个对话框,如果人家有歹意,获取 cookie 等信息,而后传给本人的服务器,那结果真的很重大。
xss 进攻
预防措施:本义特殊字符
特殊符号转换
& -> &
< -> <
> -> >
"-> "' -> '
/ -> /
下面我列举了几个常见的特殊字符。从下面的例子能够看出,输出了 <script>
标签后,外面的内容有可能会被执行。
如果咱们把 <script>
改成 <script>
那么浏览器就不把这段内容看成是可执行代码。
在日常开发中,咱们不须要本人编写本义性能的代码,只须要下载 xss
的依赖包就行。
装置 xss
依赖包
npm install xss --save
应用 xss
。xss
其实是一个办法,只须要把要本义的内容传入 xss
办法即可。
const xss = require('xss')
const content = xss('<script>alert(1234)</script>')
console.log(content)
最初输入
<script>alert(1234)</script>
以上就是 xss 攻打
在后端的进攻办法。
如果谨严一点的话,在前端也能够把文本域的内容里的特殊字符本义一遍再传给后端。
后端传给前端的内容有可能会在页面展现成 <script>alert(1234)</script>
,这部分须要前端本人去解决。
插则花边新闻
之前看到有则新闻说 Vue
不平安,某些 ZF 我的项目中应用 Vue
受到了 xss
攻打。后端甩锅给前端,前端甩锅给了 Vue
。
起初据说是前端胡乱应用 v-html
渲染内容导致的,而 v-html
这货色官网文档也提醒了有可能受到 xss
攻打。
尤雨溪:很多人就是不看文档
举荐浏览
👍《NodeJS mysql 须要留神 sql 注入》
👍《NodeJS 5 分钟 连贯 MySQL 增删改查》
👍《NodeJS Stream 入门》
👍《NodeJS 操作 cookie》
👍《NodeJS 5 分钟 连贯 Redis 读写操作》
点赞 + 关注 + 珍藏 = 学会了