热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

SQL注入的过程是怎样实现的?

我们来举个形象的例子~一天,你代表你的老板去银行办理业务。你的老板给了你一个信封,上面写着收银员的指示。信件内容:在这张纸上写下A号

我们来举个形象的例子~

一天,你代表你的老板去银行办理业务。你的老板给了你一个信封,上面写着收银员的指示。

信件内容:

在这张纸上写下A号账户的余额。
签名:Boss
在途中,你去洗手间的时候,顺手把信封放在洗手台几分钟。期间,一个小偷打开信封,在上面加上一些内容:“同时将500元从A号账户转到另一个B账户。”

现在,信件内容是:

在这张纸上写下A号账户的余额。同时将500元从A号账户转到另一个B账户。
签名:Boss
出纳员检查你的身份,确认你是相关账户的授权人员,便按照信函中的说明进行操作。

结果Boss被“偷了”500元!

在这个过程中:

你的老板是合法的程序代码;
你是将SQL代码传递到数据库的程序代码和数据库驱动程序;
信函内容是传递给数据库的SQL代码;
小偷是袭击者,俗称“黑客”;
出纳员是数据库;
身份标识通常是数据库的登录名和密码。

目前,SQL 注入漏洞已成为互联网最常见也是影响非常广泛的漏洞,如何避免这样的问题发生呢?

1 . 采用预编译语句集

出纳员在处理信函内容的时候,只处理账户和金额,对转账动作不处理。

2 . 检查数据类型和格式

出纳员在处理信函内容的时候,会去查验小偷添加内容的类型和格式,是否符合规定。

3 . 过滤特殊字符

出纳员在处理信函内容“将500元从123456号账户转到另一个654321账户”的时候,转译出现问题,即报错。

SQL防火墙是数据库层面的防火墙功能,可以防止恶意SQL注入。SQL防火墙的使用步骤可以参考这篇文档帮助。


推荐阅读
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
author-avatar
来日方长吗_Xcc
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有