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

 更新时间:2014年10月09日 09:28:54   投稿:hebedich  
由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的处理了!但是,个人认为,我们还是需要了解一下常用的安全处理函数!

虽然各种开发框架给我们提供了很好的安全的处理方式,但是,我们还是要注意一下安全问题的。
 原因简单:很多小的功能和项目是用不到框架的,我们需要自己解决安全问题!

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

复制代码 代码如下:

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

复制代码 代码如下:

<?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 \"

⑤参考资料:

https://www.jb51.net/article/35868.htm

相关文章

  • PHP递归的三种常用方式

    PHP递归的三种常用方式

    今天小编就为大家分享一篇关于PHP递归的三种常用方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】

    JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有

    这篇文章主要介绍了JS(jQuery)实现聊天接收到消息语言自动提醒功能,结合实例形式详细分析了javascript结合ajax后台交互实现信息语音提示功能相关原理与操作技巧,需要的朋友可以参考下
    2019-04-04
  • 细谈php中SQL注入攻击与XSS攻击

    细谈php中SQL注入攻击与XSS攻击

    通常在编程中程序员要考虑的问题不仅是代码效率与代码复用性,而且还要考虑一些安全问题
    2012-06-06
  • 【CLI】利用Curl下载文件实时进度条显示的实现

    【CLI】利用Curl下载文件实时进度条显示的实现

    这篇文章主要给大家介绍了关于【CLI】利用Curl下载文件实时进度条显示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • 详解cookie验证的php应用的一种SSO解决办法

    详解cookie验证的php应用的一种SSO解决办法

    这篇文章主要介绍了详解cookie验证的php应用的一种SSO解决办法的相关资料,希望通过本文能帮助到大家让大家遇到这种类似问题解决,需要的朋友可以参考下
    2017-10-10
  • 浅谈PHP无限极分类原理

    浅谈PHP无限极分类原理

    这篇文章主要介绍了PHP无限极分类原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • php实现多维数组排序的方法示例

    php实现多维数组排序的方法示例

    这篇文章主要介绍了php实现多维数组排序的方法,结合实例形式分析了php针对多维数组的排序操作相关技巧,需要的朋友可以参考下
    2017-03-03
  • 解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别

    解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别

    本篇文章是对mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php获取CSS文件中图片地址并下载到本地的方法

    php获取CSS文件中图片地址并下载到本地的方法

    这篇文章主要介绍了php获取CSS文件中图片地址并下载到本地的方法,可实现对网站上css文件中图片的抓取及下载到本地的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • PHP 输出简单动态WAP页面

    PHP 输出简单动态WAP页面

    首先,不管你是在本地调试还是想浏览网络上的wap页面,都需要一个能解析wap页面的浏览器
    2009-06-06

最新评论