常见web攻击类型

在网络通信中,HTTP请求作为客户端与服务器交互的核心方式,常常成为攻击者的目标。以下是几种常见的HTTP请求攻击的典型类型:

一、跨站脚本攻击(XSS,Cross-Site Scripting)

原理 :攻击者在HTTP请求中注入恶意脚本(如JavaScript),当服务器未对输入内容进行过滤,直接将其返回给其他用户时,脚本会在用户浏览器中执行,窃取信息或篡改页面。
分类

  • 存储型XSS:恶意脚本被存储在服务器数据库(如评论区、用户资料),所有访问该页面的用户都会触发攻击。
  • 反射型XSS:恶意脚本通过URL参数等方式随HTTP请求发送,服务器"反射"该内容给用户,仅在单次请求中生效(需诱导用户点击恶意链接)。
  • DOM型XSS :攻击不经过服务器,直接通过修改页面DOM结构触发,依赖浏览器对输入的处理漏洞。
    危害:窃取Cookie、SessionID,伪造用户操作,传播恶意代码等。

二、SQL注入攻击(SQL Injection)

原理 :攻击者在HTTP请求的参数(如表单输入、URL参数)中插入恶意SQL语句,服务器若直接将参数拼接进SQL查询且未过滤,会导致数据库被非法访问(如查询、修改、删除数据)。
示例

正常登录请求参数为 username=admin&password=123,对应SQL为 SELECT * FROM users WHERE username='admin' AND password='123'

攻击者输入 password=' OR '1'='1,SQL变为 SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1',由于 '1'='1' 恒为真,可绕过登录验证。
危害:泄露敏感数据(如用户信息、支付记录),删除数据库表,甚至获取服务器权限。

三、跨站请求伪造(CSRF,Cross-Site Request Forgery)

原理 :攻击者诱导已登录目标网站的用户,在不知情的情况下发送恶意HTTP请求(利用用户的身份凭证,如Cookie),完成非预期操作(如转账、修改密码)。
攻击流程

  1. 用户登录A网站(已认证,Cookie存在浏览器);
  2. 攻击者诱导用户访问恶意网站B,B中隐藏指向A网站的请求(如表单提交、图片加载);
  3. 浏览器自动携带A网站的Cookie发送请求,A网站误认为是用户主动操作,执行恶意指令。
    危害:执行未授权操作,如修改用户信息、发起交易等。

四、命令注入攻击(Command Injection)

原理 :若服务器在处理HTTP请求时,将用户输入直接作为系统命令的参数执行(如调用exec()system()等函数),攻击者可注入恶意命令控制服务器。
示例

某网站提供"ping测试"功能,用户输入IP后,服务器执行命令 ping [用户输入]。若用户输入 8.8.8.8; rm -rf /,服务器会先执行ping 8.8.8.8,再执行删除系统文件的命令。
危害:控制服务器操作系统,窃取文件、植入木马,甚至瘫痪系统。

五、文件上传漏洞攻击

原理 :服务器对HTTP请求中上传的文件(如图片、文档)未严格验证类型或内容,攻击者可上传恶意文件(如.php脚本),通过访问该文件执行代码。
攻击方式

  • 伪造文件后缀(如将malicious.php改为malicious.jpg,但服务器未验证文件内容);
  • 利用文件解析漏洞(如IIS的.php;.jpg解析为PHP文件)。
    危害:远程代码执行,控制服务器。

六、参数污染攻击(Parameter Pollution)

原理 :攻击者在HTTP请求中重复提交同一参数(如?id=1&id=2),利用服务器对参数解析的规则漏洞,篡改请求逻辑。
示例

某购物网站结算请求为 ?item=book&price=50,攻击者提交 ?item=book&price=50&price=10,若服务器取最后一个price值,会导致以10元购买商品。
危害:绕过验证、篡改数据、获取未授权信息。

七、HTTP头部攻击

攻击者通过篡改HTTP请求头(如HostRefererUser-Agent)实施攻击:

  • Host头攻击 :伪造Host值,利用服务器对主机名的信任,诱导生成包含恶意域名的链接(如密码重置链接);
  • Referer头伪造 :绕过基于Referer的来源验证,访问受限制资源。

防御建议

针对上述攻击,核心防御思路包括:

  • 对用户输入进行严格过滤和转义(如XSS、SQL注入);
  • 使用参数化查询(Prepared Statement)防止SQL注入;
  • 启用CSRF Token验证(如表单中添加随机令牌);
  • 限制文件上传类型,验证文件内容;
  • 遵循"最小权限原则"(如数据库账户仅授予必要权限)。

通过多层防护机制,可大幅降低HTTP请求被攻击的风险。

相关推荐
yanlele18 分钟前
我用爬虫抓取了 25 年 6 月掘金热门面试文章
前端·javascript·面试
lichenyang45323 分钟前
React移动端开发项目优化
前端·react.js·前端框架
你的人类朋友27 分钟前
🍃Kubernetes(k8s)核心概念一览
前端·后端·自动化运维
web_Hsir28 分钟前
vue3.2 前端动态分页算法
前端·算法
专注VB编程开发20年33 分钟前
常见 HTTP 方法的成功状态码200,204,202,201
开发语言·网络协议·tcp/ip·http
烛阴1 小时前
WebSocket实时通信入门到实践
前端·javascript
草巾冒小子1 小时前
vue3实战:.ts文件中的interface定义与抛出、其他文件的调用方式
前端·javascript·vue.js
DoraBigHead1 小时前
你写前端按钮,他们扛服务器压力:搞懂后端那些“黑话”!
前端·javascript·架构
Xiaouuuuua2 小时前
一个简单的脚本,让pdf开启夜间模式
java·前端·pdf
@Dream_Chaser3 小时前
uniapp ruoyi-app 中使用checkbox 无法选中问题
前端·javascript·uni-app