常见Web攻击类型
Web攻击的常见类型包括:
- SQL注入攻击:攻击者通过在用户输入中插入恶意SQL代码,来操控或破坏数据库。
- 跨站脚本攻击(XSS):攻击者通过在网页中插入恶意脚本,当其他用户浏览这个网页时,这些脚本会被执行。
- 跨站请求伪造(CSRF):攻击者诱导用户点击链接或按钮,然后利用用户的登录状态,以用户的名义发送恶意请求。
- 点击劫持攻击:攻击者通过透明的层覆盖在目标网站上,当用户点击该层时,实际上是在点击攻击者设置的链接。
- 会话劫持:攻击者获取到用户的会话ID,然后冒充用户的身份进行操作。
- 文件上传漏洞:攻击者通过上传包含恶意代码的文件,来对服务器进行攻击。
- DDOS攻击:攻击者通过控制大量的计算机同时向目标网站发送大量的请求,使其无法正常服务。
- 中间人攻击:攻击者在通信双方之间插入自己,拦截和篡改信息。
- 敏感数据泄露:由于配置错误、软件漏洞或者人为疏忽,导致敏感信息被泄露。
- 零日攻击:利用软件的未公开漏洞进行的攻击。
为了防止这些攻击,可以采取以下策略:
- 使用参数化查询或预编译语句来防止SQL注入攻击。
- 对用户输入进行严格的验证和过滤,防止跨站脚本攻击。
- 使用CSRF令牌来防止跨站请求伪造。
- 对用户提交的数据进行验证,确保其合法性。
- 对敏感操作进行二次确认,防止会话劫持。
- 限制文件上传的类型和大小,防止文件上传漏洞。
- 使用防火墙和入侵检测系统来防止DDOS攻击。
- 使用SSL/TLS来加密通信内容,防止中间人攻击。
- 定期备份数据,防止敏感数据泄露。
- 及时更新和打补丁,防止零日攻击。
本文将基于最常见的几种Web攻击类型讨论:
XSS跨站脚本攻击
- 窃取用户信息
存储型
恶意脚本被存在数据库中
危害最大,对全部用户可见
Reflected
在服务端注入脚本
DOM-based
不需要服务器,在浏览器中注入脚本
Mutation-based
基于浏览器,触发Error回调函数
防御
不要将用户提交内容直接转换成DOM
SOP同源策略
CSP安全策略
CSRF跨站伪造请求攻击
防御
token防御
iframe攻击防御
- 设置服务器响应头部
X-FRAME-OPTIONS:DENY/SAMEORIGIN
- 区分GET/POST请求
- 通过设置SameSite Cookie避免用户信息被携带
第三方Cookie问题:
服务端设置
SameSite:
SameSite与CORS区别:
| SameSite | CORS |
|---|---|
| Cookie发送 | 资源读写(HTTP请求) |
| domain和页面域名 | 资源域名与页面域名 |
| 同源策略 | 白名单 |
使用中间件
Injection
SQL恶意注入
防御
- 找到项目中查询SQL的地方
- 使用prepared statement
SSRF服务端伪造请求
防御
DoS服务拒绝攻击
TCP三次握手没有完成,又称为SYN雪崩
防御
中间人攻击
防御
HTTPS的特性
SRI
通过对比原始内容的哈希值与实际内容的哈希值
保证CDN上资源没有被篡改
Feature Policy
允许开发者使用的功能