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 相关文章推荐
让你同时上传 1000 个文件 (二)
Oct 09 PHP
PHP 操作文件的一些FAQ总结
Feb 12 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 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
phpmyadmin操作流程
2006/10/09 PHP
PHP中的extract的作用分析
2008/04/09 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
php构造函数与析构函数
2016/04/23 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
js实现简单的打印表格
2020/01/15 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
深入理解python中的atexit模块
2017/03/07 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python tkinter窗口最大化的实现
2019/07/15 Python
pytorch实现线性拟合方式
2020/01/15 Python
python如何快速拼接字符串
2020/10/28 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
教师党员思想汇报
2014/01/06 职场文书
音乐教学随笔感言
2014/02/19 职场文书
保护动物倡议书
2014/04/15 职场文书
物业管理工作方案
2014/05/10 职场文书
活动总结报告怎么写
2014/07/03 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
水知道答案观后感
2015/06/08 职场文书
开业典礼致辞
2015/07/29 职场文书
三八妇女节致辞
2015/07/31 职场文书
导游词之镇江焦山
2019/11/21 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书