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 相关文章推荐
Discuz 模板语句分析及知识技巧
Aug 21 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
php源码的安装方法和实例
Sep 26 PHP
设定php简写功能的方法
Nov 28 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 魔术方法使用说明
2009/10/20 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
浅析PHP文件下载原理
2014/12/25 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
python用700行代码实现http客户端
2021/01/14 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
电子邮箱格式怎么写
2014/01/12 职场文书
网络程序员自荐信
2014/01/25 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书