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作为Shell脚本语言使用
Oct 09 PHP
第十四节--命名空间
Nov 16 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
zf框架db类的分页示例分享
Mar 14 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
smarty内置函数section的用法
Jan 22 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
YII框架关联查询操作示例
Apr 29 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 session常见问题集锦及解决办法总结
2007/03/18 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python实现类的创建与使用方法示例
2017/07/25 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
pandas 时间格式转换的实现
2019/07/06 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
html5与css3小应用
2013/04/03 HTML / CSS
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
自荐书格式
2013/12/01 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
工商管理自荐书
2014/07/06 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
预备党员党支部意见
2015/06/02 职场文书
小学思品教学反思
2016/02/20 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python