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 相关文章推荐
第三章 php操作符与控制结构代码
Dec 30 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
php Session存储到Redis的方法
Nov 04 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
PHP生成树的方法
Jul 28 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 PHP
thinkphp 获取控制器及控制器方法
Apr 16 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
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
《我的信念》教学反思
2014/02/15 职场文书
创文明城市标语
2014/06/16 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
通知的写法
2015/04/23 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript