当前位置: 首页 > article >正文

web常见的攻击方式有哪些?如何防御?

Web常见攻击方式及防御策略

SQL注入 (SQL Injection)

详细解析:
SQL 注入是一种利用应用程序未正确验证用户输入的漏洞,通过向应用传递恶意 SQL 查询来操纵数据库的行为。这种攻击可能导致敏感数据泄露、篡改或删除。

步骤:

  1. 攻击者找到可接受动态参数的应用程序入口点。
  2. 输入恶意 SQL 语句作为查询的一部分。
  3. 数据库执行该恶意查询,可能暴露敏感信息或允许未经授权的数据修改。

示例:
假设有一个登录表单,其后台代码如下:

$query = "SELECT * FROM users WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";

如果用户名字段被设置为 admin' --,则最终查询变为:
SELECT * FROM users WHERE username='admin' -- AND password=''

这会绕过密码验证。

防御方法:

  • 使用预处理语句(Prepared Statements)和参数化查询。
  • 对所有外部输入进行严格的校验和清理。
  • 避免显示详细的错误消息给终端用户。

跨站脚本攻击 (XSS)

详细解析:
跨站脚本攻击是指攻击者将恶意 JavaScript 或其他类型的客户端脚本嵌入网页中,在受害用户的浏览器环境中运行这些脚本。它分为反射型 XSS 和存储型 XSS。

步骤:
对于 存储型 XSS, 参考引用中的描述:

  1. 攻击者将恶意代码提交到目标网站的数据库中。
  2. 用户访问页面时,服务器从数据库提取内容并将其渲染成 HTML 响应。
  3. 浏览器加载此响应后执行嵌入的恶意脚本。

示例:
在留言板功能中,攻击者发布一条包含 <script>alert('Hacked')</script> 的评论。当其他用户浏览这条留言时,他们的浏览器会弹出警告框。

防御方法:

  • 实现上下文感知编码(Context-Aware Encoding),例如 HTML 编码、JavaScript 编码等。
  • 启用 Content Security Policy (CSP),限制哪些资源可以在页面上加载和执行。
特点描述预防方法
利用了HTML标签特性将恶意脚本插入到正常页面中被执行上下文编码, CSP

跨站点请求伪造 (CSRF)

详细解析:
CSRF 是一种强制已认证用户在其不知情的情况下发起恶意请求的技术。由于大多数 Web 应用依赖 cookies 来维持身份验证状态,因此 CSRF 攻击能够轻易伪装合法操作。

步骤:

  1. 攻击者诱导受害者点击链接或加载特定图像。
  2. 此动作触发了一个指向易受攻击网站的有效 HTTP 请求。
  3. 如果受害者当前处于登录状态,则该请求会被视为有效命令而被执行。

示例:
假设有银行转账接口 /transfer?amount=100&toAccount=attacker_account, 当用户访问了攻击者的恶意站点时,可能会自动发出这样的 GET 请求,从而完成资金转移。

防御方法:

  • 添加一次性令牌至每个重要请求,并由服务器端验证。
  • 检查 Referer 头部以确认请求来源可信度。

文件上传漏洞

详细解析:
文件上传漏洞发生在开发者未能充分过滤用户上传的内容类型及时机情况下发生的安全隐患。一旦成功利用,就有可能实现远程代码执行(RCE)或其他破坏行为。

步骤:

  1. 提供一个看似无害却隐藏危险逻辑的文件(比如PHP木马).
  2. 成功上传之后尝试让服务端解释执行.

示例:
假如上传机制只简单检查扩展名为 .jpg 即认为安全,但实际上内部仍可能是 PHP 脚本形式存在的话,那么就可以轻松突破防线。

防御方法:

  • 设置白名单限定允许上传的具体 MIME 类型.
  • 执行额外扫描检测潜在威胁成分.
  • 不直接保留原始命名路径以防目录遍历风险.
特点描述预防方法
关键在于文件性质判断失误导致非法文件得以存留并生效白名单控制,MIME匹配,病毒查杀工具辅助

总结表格
攻击名称特点描述预防方法
SQL注入动态构建SQL字符串黑客可以通过构造特殊字符组合影响DB交互过程参数绑定/预编译;严格输入验证
XSS客户端脚本植入在网页内嵌入恶意JS片段造成连锁反应输出转义;启用CSP
CSRF冒充真实用户提交指令让授权下的账户无意间做出违背意愿的动作加密token随附关键交易环节
文件上传漏洞错误识别所接收文档属性授权后的不当权限授予使得任意格式均可落地设定明确许可列表;二次审查

图表总结

在这里插入图片描述

http://www.lryc.cn/news/2385435.html

相关文章:

  • 力扣:《螺旋矩阵》系列题目
  • 发电厂进阶,modbus TCP转ethernet ip网关如何赋能能源行业
  • 深入了解linux系统—— 操作系统的路径缓冲与链接机制
  • Ansible快速入门指南
  • 华为2025年校招笔试真题手撕教程(一)
  • 第9.2讲、Tiny Decoder(带 Mask)详解与实战
  • postgresql 常用参数配置
  • Python模块中的私有命名与命名空间管理:深入解析与实践指南
  • 基于PCRLB的CMIMO雷达网络多目标跟踪资源调度
  • AtCoder Beginner Contest 407(ABCDE)
  • VILT模型阅读笔记
  • 掌握 npm 核心操作:从安装到管理依赖的完整指南
  • OpenCV CUDA模块特征检测与描述------一种基于快速特征点检测和旋转不变的二进制描述符类cv::cuda::ORB
  • Awesome ChatGPT Prompts:释放AI对话潜力的开源利器
  • Prompt Tuning:轻量级微调与反向传播揭秘
  • C++ 继承详解:基础篇(含代码示例)
  • PP-YOLOE-SOD学习笔记2
  • OpenLayers 加载测量控件
  • .NET ORM开发手册:基于SqlSugar的高效数据访问全攻略
  • 【PostgreSQL】数据探查工具1.0研发可行性方案
  • C++ 内存管理与单例模式剖析
  • 算法学习——从零实现循环神经网络
  • win10使用nginx做简单负载均衡测试
  • 2025电工杯数学建模B题思路数模AI提示词工程
  • 软考软件评测师——软件工程之开发模型与方法
  • 前端表单中 `readOnly` 和 `disabled` 属性的区别
  • 【日志软件】hoo wintail 的替代
  • OceanBase数据库全面指南(基础入门篇)
  • 异步处理与事件驱动中的模型调用链设计
  • redis配置带验证的主从复制