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

我们来举个形象的例子~

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

信件内容:

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

现在,信件内容是:

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

结果Boss被“偷了”500元!

在这个过程中:

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

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

1 . 采用预编译语句集

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

2 . 检查数据类型和格式

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

3 . 过滤特殊字符

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值