输入值/表单提交参数过滤有效防止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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
php注册审核重点解析(数据访问)
May 23 PHP
PHP构造二叉树算法示例
Jun 21 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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
初探PHP5
2006/10/09 PHP
php define的第二个参数使用方法
2013/11/04 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
jQuery的学习步骤
2011/02/23 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
vue实现购物车的监听
2020/04/20 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
社区志愿者培训方案
2014/06/10 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
党的作风建设心得体会
2014/10/22 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
python tkinter模块的简单使用
2021/04/07 Python