没有绝对安全的网站,web常见的攻击也是永远绕不开的话题,今天简单聊聊XSS。html
XSS 全称是Cross Site Scripting(跨站脚本), 为了与“CSS”区分开,故简称XSS。是指黑客往HTML文件中或者DOM中注入恶意脚本,从而再用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。前端
恶意脚本能够作哪些事情web
......数据库
在一个反射型XSS攻击过程当中,恶意JS脚本属于用户发送给网站请求中的一部分,随后网站又把恶意JS脚本返回给用户,当恶意脚本再用户页面中被执行时,黑客就能够利用该脚本作一些恶意操做。express
server.jssegmentfault
const express = require('express'); const router = express.Router(); router.get('/', (req, res, next) => { res.render('index', { title: 'Express', xss: req.query.xss, }) }); module.exports = router;
index.eje浏览器
<!DOCUMENT html> <html> <head> <title><%= title %> </title> </head> <body> <h1><%= title %></h1> <p>Weclome to <%= title %></p> <div> <%= xss %> </div> </body> </html>
在浏览器打开安全
http://localhost:3000/?xss=123
页面正常展现
可是打开下面的连接服务器
http://localhost:3000/?xss=<script>alert('你被 xss 攻击了')</script>
页面以下
经过这个例子,能够看出用户将一段含有恶意JS脚本请求提交给Web服务器,Web服务器收到请求时,又将恶意代码发送给浏览器,这就是反射型XSS攻击。在现实生活中,黑客常常会经过Q群或者邮件等方式诱导用户去点击这些恶意连接,因此平时不要乱点连接。cookie
与存储型XSS攻击的区别:Web服务器不会存储反射型XSS攻击的代码。
基于DOM的XSS攻击是不牵涉到页面Web服务器的。黑客经过各类手段将恶意脚本注入到用户页面中,好比经过网络劫持(Wifi路由器劫持、本地恶意软件)在页面传输过程当中修改HTML页面的内容。
备注:https只能增长攻击难度,不能防止全部场景的基于DOM的XSS攻击
CSP有以下几个功能:
没有绝对安全的系统,因此咱们只能尽可能作到知道原理,而后预防,提升攻击难度。
技术自己是个好东西,可是好技术要用在对的地方才能显示出它的价值
个人其余文章:
JS代码运行过程简述(一)
欢迎一块儿快乐的挖坑、填坑。哈哈哈