资讯专栏INFORMATION COLUMN

php常用的安全过滤函数

niceforbear / 2600人阅读

摘要:由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题因为框架已经帮我们几乎完美的处理了但是,个人认为,我们还是需要了解一下常用的安全处理函数原因简单很多小的功能和项目是用不到框架的,我们需要自己解决安全问题常用的安全函数有

由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的处理了!但是,个人认为,我们还是需要了解一下常用的安全处理函数!
原因简单:很多小的功能和项目是用不到框架的,我们需要自己解决安全问题!

①常用的安全函数有哪些:

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、当开启的时候,都会对指定范围内的数据进行转义过滤!

  

不同:
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脚本,都可以对数据进行安全转移,内容如下:

 &$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("	", $_GET);
    $runtimeData = implode("	", $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 I"m trunning
turnning.....turnning around "

⑤参考资料:

http://www.t086.com/article/4472
php在线手册

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31875.html

相关文章

  • PHP网站常见一些安全漏洞及防御方法

    摘要:一常见网站安全漏洞对于的漏洞,目前常见的漏洞有五种。分别是文件漏洞注入漏洞脚本命令执行漏洞全局变量漏洞和文件漏洞。这就是月行胃的注入漏洞。 一、常见PHP网站安全漏洞 对于PHP的漏洞,目前常见的漏洞有五种。分别是Session文件漏洞、SQL注入漏洞、脚本命令执行漏洞、全局变量漏洞和文件漏洞。这里分别对这些漏洞进行简要的介绍。 1、session文件漏洞 Session攻击是黑客最常...

    lavor 评论0 收藏0
  • 8个很有用PHP安全函数,你知道几个?

    摘要:原文译文有用的安全函数译者安全是编程非常重要的一个方面。一起看看中常用的可以确保项目安全的函数。现在这个函数并不被认为是安全的,因为开源的数据库可以反向检查一个散列值的明文。也不要把绝对安全寄托在这个函数上,否则会有意想不到的结果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...

    Meils 评论0 收藏0
  • PHP应用程序开发中不正当使用mail()函数引发血案

    摘要:在我们向厂商提交漏洞,发布了相关的漏洞分析文章后,由于内联函数导致的类似安全问题在其他的应用程序中陆续曝出。浅析的函数自带了一个内联函数用于在应用程序中发送电子邮件。 前言 在我们 挖掘PHP应用程序漏洞 的过程中,我们向著名的Webmail服务提供商 Roundcube 提交了一个远程命令执行漏洞( CVE-2016-9920 )。该漏洞允许攻击者通过利用Roundcube接口发送一...

    Galence 评论0 收藏0

发表评论

0条评论

niceforbear

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<