1. 云栖社区>
  2. PHP教程>
  3. 正文

php常用的安全过滤函数集锦

作者:用户 来源:互联网 时间:2017-12-01 18:29:53

安全函数常用集锦

php常用的安全过滤函数集锦 - 摘要: 本文讲的是php常用的安全过滤函数集锦,虽然各种开发框架给我们提供了很好的安全的处理方式,但是,我们还是要注意一下安全问题的。 原因简单:很多小的功能和项目是用不到框架的,我们需要自己解决安全问题。①常用的安全函数有哪些:mysql_real_escape_string() ad

虽然各种开发框架给我们提供了很好的安全的处理方式,但是,我们还是要注意一下安全问题的。

原因简单:很多小的功能和项目是用不到框架的,我们需要自己解决安全问题。
①常用的安全函数有哪些:

mysql_real_escape_string() addslashes()

②这些函数的作用:

mysql_real_escape_string()和addslashes()函数都是对数据中的 单引号、双引号进行转义。也就是防止sql注入。

但是mysql_real_escape_string()考虑了字符集,更加的安全一些。

经过查阅相关的资料,可以得出一个结论:当前的字符集是单字节的话,这两个函数作用相同,都可以起到转义过滤的作用,但是,有谁会只是用单字节呢。尤其是utf8越来越广泛的被使用到。
③函数的用法:

在了解mysql_real_escape_string()和addslashes()这两个函数的用法的时候,我们必须先了解另外两个函数的含义。

get_magic_quotes_gpc()和get_magic_quotes_runtime(),我们来比较一下两个函数的异同:

相同:



a、两者都是用来获取php.ini配置文件的配置情况的。当开启的时候返回1,关闭的时候返回0。
b、当开启的时候,都会对指定范围内的数据进行转义过滤。
php常用的安全过滤函数集锦
不同:

a、两者的作用范围不同:

magic_quotes_gpc主要作用于web客户端,简单的说主要是对$_GET、$_POST、$_COOKE中的数据进行过滤。

magic_quotes_runtime主要是对文件中读取的数据或从数据库查询得到的数据进行过滤。

b、设置时间不同:

magic_quotes_gpc不可以在运行时进行设置[只能在重启服务器的时候读取该设置]

magic_quotes_runtime可以在运行时设置。

注意:所谓运行时设置,就是,我们可以通过ini_set()函数,在脚本中对php.ini文件中的配置进行设置。



明白了get_magic_quotes_gpc()和get_magic_quotes_runtime()这两个函数的后,我们就应该明白了:当我们检测到php.ini配置文件开启了magic_quotes_runtime 和 magic_quotes_gpc的话,就会自动的对指定范围内的数据进行转义。如果关闭的话,我们就需要使用mysql_real_escape_string()[或者addslashes函数进行过滤]
④举例说明:

1、无论magic_quotes_gpc和magic_quotes_runctime开启还是关闭的情况下getdata.php脚本,都可以对数据进行安全转移,内容如下:

<?php    if(!get_magic_quotes_gpc()) {foreach($_GET as $key=> &$value) {    $value = mysql_real_escape_string($value);}    }    if(!get_magic_quotes_runtime()) {$sourceDataRecord= file('./sourceData.txt');if($sourceDataRecord) {    foreach($sourceDataRecord as $sourceKey => &$sourceValue) {$sourceValue = mysql_real_escape_string($sourceValue);    }}    }    $gpcData = implode("/t", $_GET);    $runtimeData = implode("/t", $sourceDataRecord);    echo $gpcData, $runtimeData;?>

在sourceData.txt中的内容如下:

" It's anoterh sunday afternoon I'm trunning turnning.....turnning around "

我们请求getData.php时的url如下:

php.test.com/safe/getdata.php?name=maw'eibin&age=25



执行结果如下:
maw/'eibin 25/" It/'s anoterh sunday afternoon/r/n I/'m trunning turnning.....turnning around /"

⑤参考资料:

/content/372665.html

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安全 , 函数 , 常用 集锦 ,以便于您获取更多的相关知识。