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 和 XML: 使用expat函数(二)
Oct 09 PHP
php数组总结篇(一)
Sep 30 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
php 代码优化之经典示例
Mar 24 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP入门教程之上传文件实例详解
Sep 11 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 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
document对象execCommand的command参数介绍
2006/08/01 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
django 类视图的使用方法详解
2019/07/24 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
几个SQL的面试题
2014/03/08 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
幼儿教师考核制度
2014/01/25 职场文书
妇女干部培训方案
2014/05/12 职场文书
初婚未育证明样本
2014/10/24 职场文书
80后婚前协议书范本
2014/10/24 职场文书
检讨书范文2000字
2015/01/28 职场文书
违纪学生保证书
2015/02/27 职场文书
个人年终总结结尾
2015/03/06 职场文书
在职证明书模板
2015/06/15 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书