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


Posted in PHP onOctober 09, 2014

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

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

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

⑤参考资料:

PHP 相关文章推荐
PhpMyAdmin中无法导入sql文件的解决办法
Jan 08 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
初品cakephp 入门基础
Feb 16 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
PHP Echo字符串的连接格式
Mar 07 PHP
php微信开发之上传临时素材
Jun 24 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
自定义session存储机制避免会话保持问题
Oct 08 #PHP
PHP定时任务延缓执行的实现
Oct 08 #PHP
在Win7 中为php扩展配置Xcache
Oct 08 #PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 #PHP
两千行代码的PHP学习笔记汇总
Oct 05 #PHP
PHP实现定时执行任务的方法
Oct 05 #PHP
PHP实现图片旋转效果实例代码
Oct 01 #PHP
You might like
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
javascript prototype 原型链
2009/03/12 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
js性能优化技巧
2015/11/29 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
python将一组数分成每3个一组的实例
2018/11/14 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
python自动识别文本编码格式代码
2019/12/26 Python
python 回溯法模板详解
2020/02/26 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
计算机专业大学生的自我评价
2013/11/14 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
开学典礼观后感
2015/06/15 职场文书
党校培训学习心得体会
2016/01/06 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
python基础之while循环语句的使用
2021/04/20 Python
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python