一:XSS 跨站脚本攻击
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的
1:反射型攻击 url参数直接注入 (短域名伪造)
http://wxx.com/?form=<script></script>
2:存储型 存储到DB后读取是注入
将脚本通过输入框存储到数据库,在请求时执行
危害:获取页面数据,获取cookies,劫持前端逻辑,发送请求,偷取网站数据,偷取登陆信息,欺骗用户
防范手段:
1)Head
ctx.set('x-xss-Protection',0) //静止过滤xss (默认是1 静止的 会自动清楚不安全部分或者直接关闭页面)
2)csp 内容安全策略 本质建立白名单,告诉浏览器哪些外部资源可以加载并执行,我们只需配置规则,拦截有浏览器执行
eq: content-security-policy: default-src 'self' 只允许加载本站资源
eq:Content-Security-Policy: img-src https://* 只允许加载HTTPS协议图片
eq:Content-Security-Policy child-src 'none' //不允许加载任何来源框架
3):转译字符串
ejs中
《% code %> 执行code代码
《%= code %> 在code进行html转译
《%- code %> 不会转译
4)黑名单 转译输入输出内容对于引号,尖括号,斜杠
富文本需要用白名单可以使用xss库
5)HttpOnly Cookie 预防xss攻击窃取用户cookie最有效的防御手段,避免客户端被恶意js窃取cookie
二:CSRF 跨站请求伪造 利用用户已登陆的身份,在用户毫不知情情况下,以用户名义完成非法操作
危害:利用用户请求
用户不知情
完成业务请求
盗取用户资金
冒充用户发帖背锅
损害网站声誉
防御:
referer check 但是 https不发送referer 标志请求的来源 但也可以伪造referer
验证码
cookie值进行hash对表达验证
三:点击劫持 chickjacking
一种视觉欺骗的手段,攻击者将需要攻击的网站通过iframe的嵌套的方式嵌入自己的网页中,并将iframe设置为透明,在页面中诱出一个诱导按钮诱导用户点击
防御
X-FRAME-OPTIONS是一个http响应头,预防iframe嵌套的点击劫持 存在兼容问题
deny 不允许通过iframe展示
sameorigin 允许同域名用iframe
allow-from指定源
js判断是不是顶级网页 self 当前窗口自身引用和window等价
top 返回顶层窗口
四:SQL注入 1 ‘or’ 1 '='1
预防:后端代码检查输入的预期做正则表达式匹配
对数据库的特殊字符串进行转译处理
五:OS注入
六:请求劫持
DNS劫持 :DNS服务器被篡改,修改六域名解析的结果,使得访问到不是预期的ip
HTTp劫持:运营商劫持 可升级https
七:DDOS: