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中的字符串函数
Oct 09 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
微信营销平台系统?刮刮乐的开发
Jun 10 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
php实现文章评论系统
Feb 18 PHP
php使用json-schema模块实现json校验示例
Sep 28 PHP
goto语法在PHP中的使用教程
Sep 17 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
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python3.6正式版新特性预览
2016/12/15 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python内存管理实例分析
2019/07/10 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
opencv+python实现均值滤波
2020/02/19 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
学校门卫管理制度
2014/01/30 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
大专学生求职自荐信
2014/07/06 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
党员公开承诺书2015
2015/01/21 职场文书
工作自我评价范文
2015/03/05 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL