php简单实现sql防注入的方法


Posted in PHP onApril 22, 2016

本文实例讲述了php简单实现sql防注入的方法。分享给大家供大家参考,具体如下:

这里没有太多的过滤,主要是针对php和mysql的组合。

一般性的防注入,只要使用php的 addslashes 函数就可以了。

以下是一段copy来的代码:

PHP代码:

$_POST = sql_injection($_POST);
$_GET = sql_injection($_GET);
function sql_injection($content)
{
if (!get_magic_quotes_gpc()) {
if (is_array($content)) {
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
addslashes($content);
}
}
return $content;
}

做系统的话,可以用下面的代码,也是copy来的。

PHP代码:

function inject_check($sql_str) {
 return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str);  // 进行过滤
}
function verify_id($id=null) {
 if (!$id) { exit('没有提交参数!'); }  // 是否为空判断
 elseif (inject_check($id)) { exit('提交的参数非法!'); }  // 注射判断
 elseif (!is_numeric($id)) { exit('提交的参数非法!'); }  // 数字判断
 $id = intval($id);  // 整型化
 return $id;
}
function str_check( $str ) {
 if (!get_magic_quotes_gpc()) {  // 判断magic_quotes_gpc是否打开
  $str = addslashes($str);  // 进行过滤
 }
 $str = str_replace("_", "\_", $str);  // 把 '_'过滤掉
 $str = str_replace("%", "\%", $str);  // 把 '%'过滤掉
 return $str;
}
function post_check($post) {
 if (!get_magic_quotes_gpc()) {  // 判断magic_quotes_gpc是否为打开
  $post = addslashes($post);  // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
 }
 $post = str_replace("_", "\_", $post);  // 把 '_'过滤掉
 $post = str_replace("%", "\%", $post);  // 把 '%'过滤掉
 $post = nl2br($post);  // 回车转换
 $post = htmlspecialchars($post);  // html标记转换
 return $post;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
PHP添加Xdebug扩展的方法
Feb 12 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
PHP简单获取及判断提交来源的方法
Apr 22 #PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 #PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 #PHP
利用php输出不同的心形图案
Apr 22 #PHP
php生成酷炫的四个字符验证码
Apr 22 #PHP
ThinkPHP连接Oracle数据库
Apr 22 #PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 #PHP
You might like
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
PHP实现文件上传与下载
2020/08/28 PHP
js同时按下两个方向键
2007/12/01 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
Python使用folium excel绘制point
2019/01/03 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
PyTorch实现AlexNet示例
2020/01/14 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
中秋节超市促销方案
2014/01/30 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
校庆活动方案
2014/03/31 职场文书
小学少先队活动总结
2015/05/08 职场文书
禁毒主题班会教案
2015/08/14 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
详解Laravel服务容器的优势
2021/05/29 PHP
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python