有什么好的办法避免程序被SQL注入(1)
来源:互联网 发布:专业影视制作软件 编辑:程序博客网 时间:2024/04/27 20:05
function set_magic_quotes_gpc($arr=NULL){ static $isset = 1; if($isset==2) return ; if($isset==1){ if (version_compare(PHP_VERSION, '5.3.0','<')) { if(get_magic_quotes_gpc()==1){ $isset = 2; return ; } } $isset = 3; } $funcName = __FUNCTION__; if($arr!==NULL){ foreach($arr as &$val){ if(is_array($val)){ $val=$funcName($val); }else{ $val = addslashes($val); } } return $arr; } //GET 过滤 foreach($_GET as &$val){ if(is_array($val)){ $val=$funcName($val); }else{ $val = addslashes($val); } } //POST 过滤 foreach($_POST as &$val){ if(is_array($val)){ $val=$funcName($val); }else{ $val = addslashes($val); } } //COOKIE 过滤 foreach($_COOKIE as &$val){ if(is_array($val)){ $val=$funcName($val); }else{ $val = addslashes($val); } } }
这个有个PHP的解决办法 给你 供参考下:
先说明下
magic_quotes_gpc 一直是个头疼的问题 无论 是否开启 都会影响项目的可移植性
所以 php 5.3.0以后 去掉了 这个功能(php 5.3.0以后使用magic_quotes_gpc 和 magic_quotes_runtime 会发出Warning 警告,php6.0以后会测底删除这2个功能。magic_quotes_gpc 中的 gpc 是指 $_GET,$_POST,$_COOKIE 中的 值 这三个值 涉及到 sql注入的问题,magic_quotes_runtime是指php程序从文件或是其他地方获取到的值是否转义 这里不讨论magic_quotes_runtime的问题 ,个人觉得只要程序员稍微留意下 这个问题不存在)
下面这个函数 可以解决这个问题 无论php版本是否大于5.3.0 或是当php版本小于5.3.0时 是否开启magic_quotes_gpc功能 统统不用考虑
这个函数会自动转义 get,post,cookie 中的 单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
只要在获取 get,post , cookie 前运行下这个函数即可 并且这个函数带有 缓存记忆功能 (一般在头部 功能 程序中 执行下 这个函数就行)。
调用的时 直接 set_magic_quotes_gpc() 不用传递任何参数
- 有什么好的办法避免程序被SQL注入(1)
- 避免sql注入的方法
- 棘手的问题:我的商务网站在发布信息时经常要输入半角%,可是为了防止sql注入又不得不过滤掉%,请问有什么办法.
- 防止sql注入的办法
- .NET程序有什么好的保护方法?
- 误删的照片找回有什么好的办法吗
- 想做一个预览窗口任意大小的camera,有什么好的办法
- 为什么很多的 iOS app 都有秒退现象?有什么好方法避免它?
- asp 网站被 sql 注入后的处理办法。
- 防范SQL注入攻击的新办法
- 防范SQL注入攻击的新办法
- 防范SQL注入攻击的新办法
- 防范SQL注入攻击的新办法
- 防范SQL注入攻击的新办法
- SQL注入的学习以及应对办法
- SQL注入的几种实用办法
- 避免Sql注入
- 避免SQL注入
- 祝福
- 内部类学习
- C语言基础学习之指针操作字符串反转
- 我们在囧途之技术管理者篇
- /etc/shadow
- 有什么好的办法避免程序被SQL注入(1)
- php mysql防止sql注入详细说明(2)
- 用户名的正则表达式
- Linux安装包查询
- UVA 11039
- 应用滤镜效果
- ManyToOne的xml配置 及 解决N+1问题
- 设置透明度
- 设置动感模糊