- XSS-跨站脚本攻击
- CSRF-跨站请求伪造
- 点击劫持
- SQL注入
- OS注入
- 请求劫持
- DDOS
XXS
名称
- 简称: XSS
- 英文: Cross Site Scripting
- 全称: 跨站脚本攻击
定义:
- XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本
场景
- jsonp、eval、DNS污染、url带参数 等
攻击的危害包括
- 获取用户的cookie,获取用户的密码等个人信息
- 获取,修改或者删除页面和网站的数据
- 劫持前端的逻辑
- 冒充用户发送请求
- 非法转账、强制发送邮件
XSS攻击的分类
- 反射性
本来正常的链接是www.abc.com?params=China
,但是攻击者诱导用户点击了www.abc.com?params=<script>alert(/xss/)</script>
或者www.abc.com?params=<script src="hack.js"></script>
.script的代码可以获取到页面的数据,用户的cookie,冒充用户发送请求等.
- 存储型
例如: 攻击者在表单提交的输入框中输入了一段js代码, 服务端和客服端都没有过滤,而存储到数据库.每个浏览该页面的用户都会执行这段代码
3.DOMXSS
这种类型则是利用非法输入来闭合对应的html标签。 比如,有这样的一个a标签: 乍看问题不大,可是当$var的内容变为 ’ οnclick=’alert(/xss/) //,这段代码就会被执行。
防范手段
-
转义 用户的输入是不可信任的.把不合法的字符(比如<>/&."`)转义
-
设置请求头
- httpOnly: true, cookie 只允许server修改
- X-XSS-Protection:0 打开XSS过滤
- Content-Security-Policy: default-src 'self' // 只允许加载本站资源
- Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
- Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
- 验证验证referer
ctx.request.header.referer
- 验证码之类的人机校验
CSRF
名称
- 简称: CSRF
- 英文: Cross-site request forgery
- 全称: 跨站请求伪造
定义:
- XSS是一种在web应用中的计算机安全漏洞,模拟被信任的用户,对网站进行攻击.
与XSS的比较
- XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
攻击的危害包括
- 获取用户的cookie,获取用户的密码等个人信息
- 获取,修改或者删除页面和网站的数据
- 劫持前端的逻辑
- 冒充用户发送请求
- 非法转账、强制发送邮件
XSRF攻击的例子
被害人A刚刚登陆了某银行的网站,黑客B这时候给A发送了一条该银行网站的推广信息的链接.A点击了该链接并查看了优惠信息.
而该链接是黑客B做的诱惑链接,里面有获取A的cookie 信息的js代码.并向银行发送了转账的ajax的请求
防范手段
- 设置请求头
- httpOnly: true, cookie 只允许server修改
- Content-Security-Policy: default-src 'self' // 只允许加载本站资源
- Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
- Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
- 验证验证referer
ctx.request.header.referer
- 验证码之类的人机校验
- 服务器向客户端发送token,浏览器把token隐藏到from中,提交数据的时候携带token。服务器收到数据后会先验证token是否正确。
点击劫持
名称
- 英文: click jacking
- 全称: 点击劫持
定义:
- 点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中, 并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击
攻击的危害包括
- 在用户不知情的情况下,操作被攻击的网站
防范手段
- 设置请求头
- X-FRAME-OPTIONS: 'DENY',
DENY // 拒绝任何域加载
SAMEORIGIN // 允许同源域下加载
ALLOW-FROM // 可以定义允许frame加载的页面地址
复制代码
- js设置,但是这种不靠谱,黑客在iframe的外层再包装一层iframe,该方法就失效了
if (self === top) {
} else {
top.location = self.location
}
复制代码
SQL注入
名称
- 简称: XSS
- 英文: Cross Site Scripting
- 全称: 跨站脚本攻击
定义:
- 是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,
攻击的危害包括
- 获取用户的cookie,获取用户的密码等个人信息
- 获取,修改或者删除页面和网站的数据
- 劫持前端的逻辑
- 冒充用户发送请求
- 非法转账、强制发送邮件
XSS攻击的分类
- 反射性
本来正常的链接是www.abc.com?params=China
,但是攻击者诱导用户点击了www.abc.com?params=<script>alert(/xss/)</script>
或者www.abc.com?params=<script src="hack.js"></script>
.script的代码可以获取到页面的数据,用户的cookie,冒充用户发送请求等.
- 存储型
例如: 攻击者在表单提交的输入框中输入了一段js代码, 服务端和客服端都没有过滤,而存储到数据库.每个浏览该页面的用户都会执行这段代码
3.DOMXSS
这种类型则是利用非法输入来闭合对应的html标签。 比如,有这样的一个a标签: 乍看问题不大,可是当$var的内容变为 ’ οnclick=’alert(/xss/) //,这段代码就会被执行。
防范手段
-
转义 用户的输入是不可信任的.把不合法的字符(比如<>/&."`)转义
-
设置请求头
- httpOnly: true, cookie 只允许server修改
- X-XSS-Protection:0 打开XSS过滤
- Content-Security-Policy: default-src 'self' // 只允许加载本站资源
- Content-Security-Policy: img-src https://* // 只允许加载 HTTPS 协议图片
- Content-Security-Policy: child-src 'none' // 不允许加载任何来源框架
- 验证验证referer
ctx.request.header.referer
- 验证码之类的人机校验