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技术构造远程服务(上)
Oct 09 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
PHP计数器的实现代码
Jun 08 PHP
关于svn冲突的解决方法
Jun 21 PHP
使用php实现截取指定长度
Aug 06 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
Zend Framework实现将session存储在memcache中的方法
Mar 22 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP7创建销毁session的实例方法
Feb 03 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读取mysql的简单实例
2014/01/15 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
JavaScript中三种常见的排序方法
2017/02/24 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
python创建和删除目录的方法
2015/04/29 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
python中怎么表示空值
2020/06/19 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
应聘护士自荐信
2013/10/21 职场文书
给公司的建议书范文
2014/05/13 职场文书
保护环境倡议书300字
2014/05/19 职场文书
公司庆典主持词
2015/07/04 职场文书
公司业务员管理制度
2015/08/05 职场文书