vlambda博客
学习文章列表

用一把王者的时间,读懂SQL注入


推荐关注



一、什么是SQL注入?


首先让我们了解什么是SQL?

SQL 又称结构化查询语言,全称是Structured Query Language ,是一种特殊目的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理系统。

SQL注入 是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。

这种攻击就叫 SQL注入攻击 ,是黑客对数据库进行攻击的常用手段之一。

用一把王者的时间,读懂SQL注入

二、SQL注入的的危害 


SQL注入会造成以下严重后果:

1、 盗取用户数据和隐私,这些数据被打包贩卖,或用于非法目的,轻则损害企业品牌形象,重则将面临法律法规风险。

2、 攻击者可对目标数据库进行“增删改查”,一旦攻击者删库,企业整个业务将陷于瘫痪,极难恢复。

3、 植入网页木马程序,对网页进行篡改,发布一些违法犯罪信息。

4、 攻击者添加管理员账号,即便漏洞被恢复,如果企业未及时察觉账号被添加,则攻击者可通过管理员账号,进入网站后台。

三、SQL注入的分类 


按照不同的侧重点分类也会有所区别


1、按照参与类型分为:字符型、数字型


2、按页面回显分为:回显注入和盲注,其中回显又分为回显正常和回显报错,盲注分为时间盲注和布尔盲注


四、注入过程 


第一步:SQL注入点探测


第二步:收集后台数据库信息


第三步:猜解用户名和密码


第四步:查找Web后台管理入口


第五步:入侵和破坏


SQL注入攻击是目前Web应用网络攻击中最常见的手段之一,风险系数比较高,不过近年来有不少“SQL注入死了”的疑问,确实有人说10年前就有人在喊SQL注入死掉的事儿,但时到今日,SQL注入还是有不少案例,那么SQL注入该如何避免和解决呢?

五、SQL注入 解决办法


但凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分,对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,从变量的检测、过滤、验证下手,确保变量是开发者所预想的。


1、所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。


2、过滤特殊符号。对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。


3、绑定变量使用预编译语句。


4、数据长度应该严格规定,能在一定程度上防止比较长的SQL诸如语句无法正确执行。


5、严格限制网站用户的数据的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度地减少注入攻击对数据库的危害。


6、在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。


7、不用SQL用一把王者的时间,读懂SQL注入

注:本文内容源于网络,本号仅进行整合分享,如有侵权请联系删除。

用一把王者的时间,读懂SQL注入


用一把王者的时间,读懂SQL注入

点分享

用一把王者的时间,读懂SQL注入

点收藏

点点赞

点在看