输入值/表单提交参数过滤有效防止sql注入的方法


Posted in PHP onDecember 25, 2013

输入值/表单提交参数过滤,防止sql注入或非法攻击的方法:

/** 
* 过滤sql与php文件操作的关键字 
* @param string $string 
* @return string 
* @author zyb <zyb_icanplay@163.com> 
*/ 
private function filter_keyword( $string ) { 
$keyword = 'select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile'; 
$arr = explode( '|', $keyword ); 
$result = str_ireplace( $arr, '', $string ); 
return $result; 
} /** 
* 检查输入的数字是否合法,合法返回对应id,否则返回false 
* @param integer $id 
* @return mixed 
* @author zyb <zyb_icanplay@163.com> 
*/ 
protected function check_id( $id ) { 
$result = false; 
if ( $id !== '' && !is_null( $id ) ) { 
$var = $this->filter_keyword( $id ); // 过滤sql与php文件操作的关键字 
if ( $var !== '' && !is_null( $var ) && is_numeric( $var ) ) { 
$result = intval( $var ); 
} 
} 
return $result; 
} 
/** 
* 检查输入的字符是否合法,合法返回对应id,否则返回false 
* @param string $string 
* @return mixed 
* @author zyb <zyb_icanplay@163.com> 
*/ 
protected function check_str( $string ) { 
$result = false; 
$var = $this->filter_keyword( $string ); // 过滤sql与php文件操作的关键字 
if ( !empty( $var ) ) { 
if ( !get_magic_quotes_gpc() ) { // 判断magic_quotes_gpc是否为打开 
$var = addslashes( $string ); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤 
} 
//$var = str_replace( "_", "\_", $var ); // 把 '_'过滤掉 
$var = str_replace( "%", "\%", $var ); // 把 '%'过滤掉 
$var = nl2br( $var ); // 回车转换 
$var = htmlspecialchars( $var ); // html标记转换 
$result = $var; 
} 
return $result; 
}
PHP 相关文章推荐
PHP实现MVC开发得最简单的方法――模型
Apr 10 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
PHP 截取字符串专题集合
Aug 19 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
php 数组使用详解 推荐
Jun 02 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
php简单实现MVC
Feb 05 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
php数组和链表的区别总结
Sep 20 PHP
zend framework文件上传功能实例代码
Dec 25 #PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 #PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 #PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 #PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 #PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 #PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 #PHP
You might like
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
js 表格隔行颜色
2009/12/02 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jquery移动节点实例
2015/01/14 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
详解python程序中的多任务
2020/09/16 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
C语言编程练习
2012/04/02 面试题
垃圾回收的优点和原理
2014/05/16 面试题
电气自动化大学生求职信
2013/10/16 职场文书
团员个人的自我评价
2013/12/02 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
法人代表委托书
2014/04/04 职场文书
法人代表授权委托书
2014/04/08 职场文书
元旦寄语大全
2014/04/10 职场文书
借款协议书范本
2014/04/22 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
团员个人总结
2015/02/26 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
2016年安全月活动总结
2016/04/06 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python