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代码
Feb 16 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 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/05/07 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python函数装饰器实现方法详解
2018/12/22 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
django连接oracle时setting 配置方法
2019/08/29 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
教师个人自我评价范文
2014/04/13 职场文书
企业诚信承诺书
2014/05/23 职场文书
甜品店创业计划书
2014/08/14 职场文书
个人四风对照检查材料
2014/09/26 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL