Web安全学习|青训营笔记

150 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 11 天,欢迎各位大佬批评指正。

Web 安全 🔐

Web安全问题很常见,也有很多的危害⚠️

  • 公司利益受损
  • 个人隐私泄漏风险
  • 程序猿祭天
  • ...

因此Web安全问题不容小觑,下面从攻击者防御者两个角度来解读一下常见的安全攻防问题。

攻击篇 😈

XSS 攻击

XSSCross-Site Scripting,跨站脚本攻击。

主要是利用盲目信任用户提交的内容;可能会在提交一些信息时注入恶意脚本,造成XSS攻击。

特点:

  • 很难从UI上进行感知。
  • 窃取用户信息(cookie、token...)
  • 绘制UI弹窗,诱骗用户点击、填写表单...
  • ...

分类:

  • 存储型(Stored XSS):恶意脚本被存在数据库中,访问页面会触发读取数据进而受到攻击,对全部用户可见,危害最大!!!
  • 反射型(Reflected XSS):不涉及数据库,从URL进行攻击。
  • 基于DOM型(DOM-based XSS):不需要服务器参与,在浏览器端完成攻击。
  • 基于Mutation型(Mutation-based XSS):按照浏览器渲染DOM特性,进行区别攻击。

CSRF 攻击

CSRFCross-Site Request Forgery,跨站伪造请求。

用户在不知情的前提下,利用用户权限(cookie),构造指定HTTP请求,进而窃取/修改用户敏感信息。

SQL-Injection 攻击

  • 如果有一个请求携带恶意SQL参数到达服务器端,Sever读取参数后运行SQL Code,进而执行到恶意代码,可以随意获取数据、修改数据等。

  • SSRF攻击:流量转发导致服务器挂掉。

DOS 攻击

DOSDenial of Service,通过某种方式构造特定请求,导致服务器资源被显著消耗,无法效应更多的请求,致使请求积压,进而雪崩。

  • 正则的贪婪匹配
  • D DoS攻击

中间人攻击

由于HTTP协议具有

  • 明文传输
  • 信息篡改不可知
  • 对方身份未验证

导致中间人攻击存在。

防御篇 🛠

XSS 防御

  • 永远不要相信用户输入的任何内容,最好直接当做字符串处理。

如果必须要根据用户输入动态生成DOM,应该对输入内容过滤扫描,防止一些恶意代码。

  • CSP防御:根据设置同源

CSRF 防御

  • 利用orginreferrer来过滤请求域名。
  • token防御机制
  • iframe攻击:设置X-Frame-Optionsdeny/sameorigin,限制当前页面是否能被当作iframe加载。
  • Same-Site Cookie防御机制。

Injection 防御

找到项目中查询的SQL地方,使用prepared statement设置项。

  • 最小权原则
    • no sudo||root
  • 建立白名单机制
    • no rm
  • URL类型参数进行协议、域名、ip限制
    • no 访问内网

DoS防御

  1. 正则的DoS攻击:

    • ❌写出贪婪匹配的模式
    • 代码扫描 + 正则性能测试
    • ❌用户提供的正则
  2. D DoS攻击:

    • 流量治理
      • 负载均衡
      • API网关
      • CDN
    • 快速自动扩容
    • 非核心服务降级

中间人防御

  • 使用HTTPS协议,加密传输。
  • HSTS:主动升级HTTPS请求,但是一定要先有一次HTTPS请求。

安全无小事,一定要保持学习心态!