输入值/表单提交参数过滤有效防止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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
php从数据库中读取特定的行(实例)
Jun 02 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
javascript的this关键字详解
2019/05/20 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
Python requests上传文件实现步骤
2020/09/15 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
采购内勤岗位职责
2013/12/10 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
售后服务承诺书模板
2014/05/21 职场文书
协会周年庆活动方案
2014/08/26 职场文书
新教师培训心得体会
2014/09/02 职场文书