输入值/表单提交参数过滤有效防止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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
基于PHP常用函数的用法详解
May 10 PHP
php cli 小技巧
Jun 03 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP开发实现快递查询功能详解
Apr 08 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
php定时执行任务设置详解
2015/02/06 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
国培教师自我鉴定
2014/02/12 职场文书
法律意见书范本
2015/06/04 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP