编程

当前位置:澳门新莆京娱乐官网 > 编程 > PHP与SQL注入攻击

PHP与SQL注入攻击

来源:http://www.drgigabytes.com 作者:澳门新莆京娱乐官网 时间:2020-01-01 23:59

PHP与SQL注入攻击[二]

Magic Quotes

上文提到,SQL注入首就算交由不安全的数量给数据库来完结攻击指标。为了防止万黄金时代SQL注
PHP与SQL注入攻击。入攻击,PHP自带叁个意义可以对输入的字符串举办管理,能够在较底层对输入进行安全
上的最早管理,也即Magic Quotes。(php.ini magic_quotes_gpc)。如果magic_quotes_gpc
选取启用,那么输入的字符串中的单引号,双引号和其余一些字符前将会被机关抬高反斜杠。

但Magic Quotes并非三个很通用的解决方案,未能屏蔽全体有秘密危险的字符,而且在许
多服务器上Magic Quotes并未有被启用。所以,大家还须求利用别的三种办法来防止SQL注
入。

无数数据库自己就提供这种输入数据管理效果。譬如PHP的MySQL操作函数中有叁个叫mysql_real_escape_string(State of Qatar的函数,可将特殊字符和恐怕引起数据库操作失误的字符转义。

参考:

有意思味能够看看下边的评价:卡塔尔

看这段代码:

//要是Magic Quotes成效启用
if (get_magic_quotes_gpc()) {
$name = stripslashes($name);
}else{
$name = mysql_real_escape_string($name);
}

mysql_query(“SELECT * FROM users WHERE name='{$name}'”);

瞩目,在我们接收数据库所带的成效早前要一口咬住不放一下Magic Quotes是或不是展开,就如上例
中那样,不然一次重复管理就能够出错。假若MQ已启用,大家要把加上的去掉才取得实际
数据。

除却对上述字符串方式的数额进行预处理之外,储存Binary数据到数据库中时,也要注
意实行预管理。否则数据或然与数据库本人的寄放格式相冲突,引起数据库崩溃,数据
记录错失,以至错失整个库的数据。有个别数据库如PostgreSQL,提供三个专程用来编码
二进制数据的函数pg_escape_bytea(卡塔尔国,它能够对数据开展形似于Base64那样的编码。

如:
// for plain-text data use:
pg_escape_string($regular_strings);

// for binary data use:
pg_escape_bytea($binary_data);

另风姿浪漫种状态下,我们也要使用这样的编写制定。那便是数据库系统自个儿不扶持的多字节语言
如汉语,斯洛伐克语等。在这之中有个其余ASCII范围和二进制数据的界定重叠。
可是对数码举行编码将有望引致像LIKE abc% 那样的询问语句失效。

本文由澳门新莆京娱乐官网发布于编程,转载请注明出处:PHP与SQL注入攻击

关键词:

上一篇:PHP与SQL注入攻击

下一篇:没有了