常见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请求被攻击的风险。

相关推荐
vx_bisheyuange3 分钟前
基于SpringBoot的便利店信息管理系统
前端·javascript·vue.js·毕业设计
晚烛4 分钟前
智启工厂脉搏:基于 OpenHarmony + Flutter 的信创工业边缘智能平台构建实践
前端·javascript·flutter
Zsnoin能7 分钟前
都快2026了,还有人不会国际化和暗黑主题适配吗,一篇文章彻底解决
前端·javascript
两个西柚呀8 分钟前
es6和commonjs模块化规范的深入理解
前端·javascript·es6
www_stdio9 分钟前
爬楼梯?不,你在攀登算法的珠穆朗玛峰!
前端·javascript·面试
光影少年10 分钟前
RN vs Flutter vs Expo 选型
前端·flutter·react native
风止何安啊16 分钟前
🚀别再卷 Redux 了!Zustand 才是 React 状态管理的躺平神器
前端·react.js·面试
鹿角片ljp21 分钟前
Spring Boot Web入门:从零开始构建web程序
前端·spring boot·后端
向下的大树27 分钟前
Vue 2迁移Vue 3实战:从痛点到突破
前端·javascript·vue.js
我很苦涩的29 分钟前
原生小程序使用echarts
前端·小程序·echarts