安全
基本概念,攻击方式,防御措施
CSRF
跨域请求伪造
前提:用户登录A网站生成本地cookie并且不登出情况下访问B
防御
- token验证
- 服务器发送给客户端一个
token
; - 客户端提交的表单中带着这个
token
。 - 如果这个
token
不合法,那么服务器拒绝这个请求。
- 服务器发送给客户端一个
- 隐藏令牌
- 把
token
隐藏在http
的head
头中。 同一
- 把
- refer验证
Referer
指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。
XSS
跨域脚本攻击
原理
不需要你做登录认证,通过合法的操作,比如在url重输入,评论框输入,向你的页面注入脚本。
导致结果
盗用cookie
破坏页面结构,插入广告等恶意内容
D-doss攻击
攻击方式
1 反射型
xss出现在url中,作为输入提交到服务器端,服务器端解析后随响应一起传回去,最后浏览器解析执行xsss代码。
2 存储型
存储型XSS
和反射型XSS
的差别在于,提交的代码会存储在服务器端(数据库、内存、文件系统等),下次请求时目标页面时不用再提交XSS代码
防范措施
1 编码:用户所有的输入都需要转义
2 过滤:
- 移除用户输入的和事件相关的属性。如
onerror
可以自动触发攻击,还有onclick
等。(总而言是,过滤掉一些不安全的内容) - 移除用户输入的
Style
节点、Script
节点、Iframe
节点。
区别
CSRF:需要用户先登录网站A,获取cookie
XSS:不需要登录
原理区别
CSRF一个是利用网站的漏洞,去请求a的api
XSS是网站A注入JS代码,然后执行JS代码,篡改A的内容