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

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.xdnf.cn/news/8657.html

相关文章:

  • 防止误触的手机锁屏实用工具
  • 跨平台兼容Setup PDF 编辑器页面合并拆分OCR 识别支持多语言
  • Jenkins的Pipline中有哪些区块,以及其它知识点整理
  • 【 大模型技术驱动智能网联汽车革命:关键技术解析与未来趋势】
  • 安全基础与协议分析
  • 静态分配动态绑定
  • 数据的获取与读取篇---常见的数据格式JSON
  • 一张纸决定的高度
  • 数据透视表和公式法在Excel中实现去除重复计数的方法
  • 大数据治理:理论、实践与未来展望(二)
  • 稳固基石 - Prometheus 与 Alertmanager 运维考量
  • 探索产品经理的MVP:从概念到实践
  • 信息安全管理与评估2025上海卷
  • 在UniApp中开发微信小程序实现图片、音频和视频下载功能
  • C++单例模式
  • Spring boot和SSM项目对比
  • Sqlserver-数据库的事务日志已满,原因为“LOG_BACKUP”。
  • 转移dp简单数学数论
  • SAP全面转向AI战略,S/4HANA悄然隐身
  • 【笔记】为 Miniconda 安装图形界面的方法
  • 微服务架构实战:Eureka服务注册发现与Ribbon负载均衡详解
  • Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
  • 第2章 数据库设计
  • 多场景游戏AI新突破!Divide-Fuse-Conquer如何激发大模型“顿悟时刻“?
  • JAVA网络编程——socket套接字的介绍上(详细)
  • uniapp+ts 多环境编译
  • JavaSE核心知识点03高级特性03-03(IO流)
  • 5 分钟速通密码学!
  • 人工智能发展
  • 【C/C++】胜者树与败者树:多路归并排序的利器