Fork me on GitHub

前端安全

frontend/javascript/frontend_security_banner

前端安全的汇集,欢迎留言补充👏

跨站脚本攻击(XSS)

XSS是跨站脚本攻击(Cross-Site Scripting)的简称。XSS这类安全问题发生的本质原因在于,浏览器错误的将攻击者提供的用户输入数据当做JavaScript脚本给执行了。换言之,攻击者可以在网页上发布包含攻击性代码的数据,当浏览者看到此网页的时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息以及造成其他类型的攻击,例如:CSRF攻击。

xss的原理

  • 攻击者对含有漏洞的服务器发起xss攻击(注入js代码)
  • 诱使受害者打开收到攻击的服务器url
  • 受害者在web浏览器中打开url,恶意脚本执行

攻击方式

反射型 : 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。

攻击演示

为了方便演示,这里是使用了node进行后端的配合,使用express框架快速搭建项目,相关的步骤如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 需要安装express的生成器,如果没有全局安装,需要安装,后期就不需要再安装了
$ sudo npm install express-generator -g

# 创建文件夹
$ mkdir dirname

# 进入创建的文件根目录,生成文件,默认是jade模版,建议使用ejs模版(比较友好),这里使用ejs
$ cd dirname
$ express -e ./

# 根据控制台的提示进行后期操作
# 安装依赖
$ npm install

# 开启/运行项目
$ npm start

# 浏览器中打开(默认端口号是3000)
localhost:3000/127.0.0.1:3000

# 如果浏览器上面出现下面的字样说明成功启动(效果截止为2018.04.23)
Express
Welcome to Express

这里我新建了一个文件夹称为xss进行测试,框架搭建好的项目结构有:

1
2
3
4
5
6
7
8
9
10
11
12
# 列出一级的文件
$ ls

# 一级文件
app.js
package-lock.json
routes
bin
package.json
views
node_modules
public

反射型:

精力有限,未能一次更新完,请见谅!如有好的点子,很欢迎留言补充啊

<-- 本文已结束  感谢您阅读 -->
客官,且步,赏一个呗 (@ ~ @)