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连接MongoDB示例代码
Sep 06 PHP
php curl选项列表(超详细)
Jul 01 PHP
php中文验证码实现方法
Jun 18 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
php常用数组函数实例小结
Dec 29 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
python -v 报错问题的解决方法
2020/09/15 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
家长建议怎么写
2014/05/15 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
辩护意见书
2015/06/04 职场文书
疾病证明书
2015/06/19 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
python基础学习之递归函数知识总结
2021/05/26 Python
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫