php常用的安全过滤函数
来源:互联网 发布:魔兽世界淘宝买金币 编辑:程序博客网 时间:2024/05/20 10:23
由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的处理了!但是,个人认为,我们还是需要了解一下常用的安全处理函数!
原因简单:很多小的功能和项目是用不到框架的,我们需要自己解决安全问题!
①常用的安全函数有哪些:
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、当开启的时候,都会对指定范围内的数据进行转义过滤!
不同:
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 \"
⑤参考资料:
http://www.t086.com/article/4472
php在线手册
- php常用的安全过滤函数
- php常用的安全过滤函数
- php安全过滤函数
- PHP安全过滤函数
- PHP安全过滤函数
- PHP安全过滤函数
- PHP字符串过滤需要的函数,安全MYSQL
- 8个常用的PHP安全函数
- php的过滤函数
- PHP常用函数:过滤HTML字符串
- php 的安全过滤(基础篇)
- PHP参数过滤的函数
- php安全过滤
- PHP安全过滤
- php安全过滤
- php给$_POST,$_GET过滤单引号与双引号安全函数
- PHP中字符安全过滤函数使用小结
- PHP中字符安全过滤函数使用小结
- php学习笔记(一)基础部分
- php学习笔记(三)面向对象高级实践
- LOG4J配置
- php学习笔记(二)面向对象编程
- 旋转方阵
- php常用的安全过滤函数
- php底层变量的实现
- android:versionCode和android:versionName 用途(转) App自动更新之通知栏下载
- hdu 2553 N皇后问题(回溯)
- eclipse中字母大小写转换快捷键
- 捕获异常后什么也不做
- swift基础学习上
- Android 工程编译 Unsupported major.minor version 51.0 错误解决方法(JDK版本问题)
- php输出中文月份