输入值/表单提交参数过滤有效防止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 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
关于php mvc开发模式的感想
Jun 28 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
PHP安装memcached扩展笔记
May 28 PHP
10条php编程小技巧
Jul 07 PHP
php目录拷贝实现方法
Jul 10 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python格式化css文件的方法
2015/03/10 Python
Python使用wxPython实现计算器
2018/01/30 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
django实现后台显示媒体文件
2020/04/07 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
文职个人求职信范文
2013/09/23 职场文书
新学期班主任寄语
2014/01/18 职场文书
销售顾问岗位职责
2014/02/25 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL