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 相关文章推荐
1.PHP简介
Oct 09 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
PHP 数组基础知识小结
Aug 20 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
May 19 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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脚本数据库功能详解(中)
2006/10/09 PHP
php下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP 字符串分割和比较
2009/10/06 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP7常量数组用法分析
2016/09/26 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
javascript新手语法小结
2008/06/15 Javascript
JavaScript中的类继承
2010/11/25 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
Python实现ping指定IP的示例
2018/06/04 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
数学国培研修感言
2014/02/13 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
警察群众路线整改措施
2014/09/26 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书