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 Script
Oct 09 PHP
PHP新手上路(十)
Oct 09 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 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 简单数组排序实现代码
2009/08/05 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
Python中编写ORM框架的入门指引
2015/04/29 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
django使用admin站点上传图片的实例
2019/07/28 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
上班离岗检讨书
2014/01/27 职场文书
小学运动会班级口号
2014/06/09 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
经营场所证明范本
2015/06/19 职场文书
高考升学宴主持词
2019/06/21 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python