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来自动调用不同服务器上的flash
Oct 09 PHP
php 生成饼图 三维饼图
Sep 28 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php图片的二进制转换实现方法
Dec 15 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
Yii隐藏URL中index.php的方法
Jul 12 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
PHP架构及原理知识点详解
Dec 22 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
中英文字符串翻转函数
2008/12/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
php判断访问IP的方法
2015/06/19 PHP
微信支付开发订单查询实例
2016/07/12 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python自动生产表情包
2017/03/17 Python
python3中int(整型)的使用教程
2017/03/23 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
python怎么判断模块安装完成
2020/06/19 Python
Python基于Faker假数据构造库
2020/11/30 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
.net笔试题
2014/03/03 面试题
学生喝酒检讨书
2014/02/06 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
保送生自荐信
2015/03/06 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
以下牛机,你有几个
2022/04/05 无线电