Web开发安全之旅|青训营笔记

85 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

两个角度看待web安全

攻击者角度(攻击)

XSS跨站脚本攻击

XSS利用了盲目信任用户提交的内容,XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
XSS的恶意代码通常是JavaScript,攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

特点:

  • 难以从UI上感知
  • 窃取用户信息
  • 绘制UI,诱骗用户点击/填写表单

存储型xss攻击是危害最大的,他将恶意脚本存储在数据库,所有用户都可见。
反射型xss攻击不涉及数据库,从URL上攻击
基于DOM的xss攻击不需要服务器的参与,恶意攻击的发起、执行,全部在游览器完成。
基于Mutation的xss攻击利用了游览器渲染DOM的特性(独特优化),不同的游览器,会有区别(按游览器进行攻击)

CSRF跨站伪造请求

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

最常见的请求方式是GET请求。

Injection注入攻击

SQL Injection攻击是最常见的注入攻击方式

CLI、OS command,也是常见的注入攻击方式。Server-Side Request Forgery(SSRF)攻击是服务器伪造请求,严格来说SSRF不是注入,但是原理类似。

DoS服务拒绝攻击

通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多的请求,导致请求挤压,进而雪崩效应。

正则表达式--贪婪模式:
贪婪模式就是尽可能多的去匹配的一种模式。
ReDoS:基于正则表达式的DoS
贪婪:n次不行就n-1次重试 --回溯
DDoS地狱DoS攻击
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。

防御者角度(防御)

针对xss攻击

原则:永远不要信任用户的提交内容,不要将用户提交的内容直接转换成DOM
工具:主流框架默认提供防御xss攻击,服务端有DOMPurify。

同源策略SoP

协议、域名和端口号相同即同源

CSP内容安全策略

能让用户定义哪些源是安全的,来自安全源的脚本可以执行,否则直接报错

CSRF的防御

通过限制请求来源,可通过Origin+Referrer方式控制