输入值/表单提交参数过滤有效防止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 相关文章推荐
动态生成gif格式的图像要注意?
Oct 09 PHP
php中处理模拟rewrite 效果
Dec 09 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 PHP
php7下的filesize函数
Sep 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python程序中设置HTTP代理
2016/11/06 Python
Python序列操作之进阶篇
2016/12/08 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
python颜色随机生成器的实例代码
2020/01/10 Python
python中count函数知识点浅析
2020/12/17 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
战友聚会邀请函
2014/01/18 职场文书
新农村建设典型材料
2014/05/31 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
现实表现证明材料
2015/06/19 职场文书
情人节单身感言
2015/08/03 职场文书