输入值/表单提交参数过滤有效防止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获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
php中url函数介绍及使用示例
Feb 13 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
php实现的RSS生成类实例
Apr 23 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
php通过文件头判断格式的方法
May 28 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
php微信公众号开发之校园图书馆
Oct 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 socke 向指定页面提交数据
2008/07/23 PHP
php自动跳转中英文页面
2008/07/29 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
原生js写的放大镜效果
2012/08/22 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
Python中无限元素列表的实现方法
2014/08/18 Python
python中requests模块的使用方法
2015/04/08 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python中实现字符串翻转的方法
2018/07/11 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
最感人的道歉情书
2015/05/12 职场文书
网络妈妈观后感
2015/06/08 职场文书
八月迷情观后感
2015/06/11 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA