输入值/表单提交参数过滤有效防止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 db类库进行数据库操作
Mar 19 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php ajax 静态分页过程形式
Sep 02 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
PHP修改session_id示例代码
Jan 08 PHP
php+highchats生成动态统计图
May 21 PHP
php有道翻译api调用方法实例
Dec 22 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
smarty中post用法实例
2014/11/28 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
javascript ajax 仿百度分页函数
2013/10/29 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
详解Python中的正则表达式的用法
2015/04/09 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
恶意软件的定义
2014/11/12 面试题
关于保护环境的建议书
2014/05/13 职场文书
作风转变心得体会
2014/09/02 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2014年民政工作总结
2014/11/26 职场文书
单位考核聘任报告
2015/03/02 职场文书
个人年终总结结尾
2015/03/06 职场文书
高二化学教学反思
2016/02/22 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书