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

相关推荐
liangshanbo12151 天前
写好 React useEffect 的终极指南
前端·javascript·react.js
哆啦A梦15881 天前
搜索页面布局
前端·vue.js·node.js
_院长大人_1 天前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
哆啦A梦15881 天前
axios 的二次封装
前端·vue.js·node.js
阿珊和她的猫1 天前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
yinuo1 天前
一行 CSS 就能搞定!用 writing-mode 轻松实现文字竖排
前端
snow@li1 天前
html5:拖放 / demo / 拖放事件(Drag Events)/ DataTransfer 对象方法
前端·html·拖放
浪裡遊1 天前
Nivo图表库全面指南:配置与用法详解
前端·javascript·react.js·node.js·php
漂流瓶jz1 天前
快速定位源码问题:SourceMap的生成/使用/文件格式与历史
前端·javascript·前端工程化
samroom1 天前
iframe实战:跨域通信与安全隔离
前端·安全