1. XSS 攻击
存储型攻击
存在提交的表单中。
攻击者将恶意代码通过正常的方式提交存入数据库,下次其他用户访问时就会执行这些代码。
- 成功的条件:提交、取数据、渲染时没有进行转义
防止:后端存数据时统一进行转义,后端传数据给前端时转义,渲染时转义
反射性攻击
将恶意脚本代码加到URL地址请求参数里,用户点击恶意链接受到攻击。
成功的条件:用户点击!即时性(不用存储)
- 防止:
- 保证渲染的内容和数据来源为服务器
- 不要从DOM API(URL, document.referrer, document.forms)中获取数据渲染
- 不使用可执行字符串(eval, new Function(), document.write(), window.setInterval/setTimeout, innerHTML, document.createElement())
- 对DOM渲染方法传入的字符串参数做escape转义
防御总结
1 过滤特殊字符
2 使用HTTP头指定类型ctx.set(‘X-XSS-Protect,‘0’) csp内容安全策略 ;白名单法:xss库,找到允许的代码;黑名单法:script和<去掉,防御替换掉这些 httpOnly cookie,将cookie信息设置为只读 response.addHeader(“set-Cookie”,“uid=112;path=/;HttpOnly”)
2. csrf 攻击
跨站请求伪造
用户登录站点A,并再本地记录了cookie,用于被引入一个其他网站,其他网站拿去站点A的cookie,伪造请求
防御
- 验证码
- 正确使用get/post/cookie
- 渲染表单时,在表单里隐藏一个随机变化的Synchronizer Tokens(csrf_token),将这个token放在session中,表单提交时放到token里。
- hash 加密存在cookie中的 csrf_token
3. 点击劫持- clickjacking
视觉欺骗的攻击手段,攻击者需要将攻击网站通过iframe进行嵌套自己的网站中,并把iframe设置为透明,在页面透出一个按钮引诱用户点击
防御
X-FRAME_OPTIONS是一个http响应头,三个可选值,DENY不允许有iframe,SAMEORIGIN统一域名下可以用iframe,ALLOW-FROM页面指定来源的iframe中展示
js方式:通过iframe方式加载页面时,直接不展示所有内容
4. SQL注入
向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,从数据库获取敏感信息
防御
- 权限限制
- 特殊字符转义
- SQL注入检测工具
- 匹配和限制输入
5. OS命令
掺入参数删除所有内容命令
6. 请求劫持
HTTP劫持:需要升级到HTTPS
DNS劫持:修改DNS解析结果
7. DDOS分布式拒绝服务攻击
预防:攻击检测和异常流量清洗
SYN Flood: tcp握手,握手两次不予理会,多次握手
HTTP flood:
备份网站 、http请求拦截、带宽扩容
参考网址: https://blog.csdn.net/lovepink527/article/details/121748214 https://www.likecs.com/show-705778.html