1. XSS 攻击

Cross Site Scripting,跨站脚本攻击

存储型攻击

存在提交的表单中。
攻击者将恶意代码通过正常的方式提交存入数据库,下次其他用户访问时就会执行这些代码。

  • 成功的条件:提交、取数据、渲染时没有进行转义
  • 防止:后端存数据时统一进行转义,后端传数据给前端时转义,渲染时转义

    反射性攻击

    将恶意脚本代码加到URL地址请求参数里,用户点击恶意链接受到攻击。

  • 成功的条件:用户点击!即时性(不用存储)

  • 防止
    1. 保证渲染的内容和数据来源为服务器
    2. 不要从DOM API(URL, document.referrer, document.forms)中获取数据渲染
    3. 不使用可执行字符串(eval, new Function(), document.write(), window.setInterval/setTimeout, innerHTML, document.createElement())
    4. 对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