如何维护你的数据库安全之mysql数据库

SQL注入一直是威胁数据库安全的一大隐患[咦]随着技术迭代,目前防护sql注入的技术越来越成熟,不得不说,是一件好的事情

那么可以通过以下几种方式保护你的mysql数据库免收注入的威胁[咦]

1.SELECT关键词替换

2.利用php内置函数

3.waf防火墙

4.php自带的魔术引导(这个比较垃圾,在php新版本中已经消失,但仍具有学习意义,且这里也会说以下怎么绕过魔术引导)

知功方能守[咦]这也是建立威胁模型的意义所在

首先来说select关键词替换,大部分的注入都是要依靠查询功能,也就是select关键字,那么我们可以添加过滤,将恶意用户提交的select关键字替换为其他的,这样可以防止过滤的产生
在php中,有一个名为 str_replace()的函数,可以将字符串进行替换

那么我们可以将select进行替换

str_replace(‘select’,’替换为xx’);

这样可以在恶意用户提交恶意语法时将select替换掉,针对关键词进行防护

源代码中添加过滤后再次注入显示报错,已经将select替换为fuck,这就是一种防护注入的方法

如何维护你的数据库安全之mysql数据库插图

第二种是利用php内置函数,这里用is_int(),举例,这个函数的作用是判断是否为整数,那么我们可以在过滤时候判断提交的是否为整数,不是的话直接过滤。

例如这里,判断提交的id是否为整数,不是的话输出注nm。

这种过滤是不可绕过的,所以一些提交的参数单一时,可以使用这种过滤办法

如何维护你的数据库安全之mysql数据库插图1


魔术引导 magic_qutos_gpc
开启此功能后会自动转义单引号,斜杠,括号 和null等,开启后注入恶意语句会被自动转义造成语句失效
开启后提交读取文件语句后,斜杠会被自动转义,如图所示

如何维护你的数据库安全之mysql数据库插图2

那么如何绕过魔术引导?可以用hex编码,百度小葵工具箱,将语句编码,重新注入,会发现,注入成功

如何维护你的数据库安全之mysql数据库插图3

这就是几种简单的防护[笑眼]下一贴讲爆路径

标签

发表评论