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实现的功能是显示8条基色色带
Oct 09 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
php实现微信支付之退款功能
May 30 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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
Docker配置PHP开发环境教程
2016/12/21 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
python基础教程之lambda表达式使用方法
2014/02/12 Python
python简单实现基数排序算法
2015/05/16 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python科学计算之Pandas详解
2017/01/15 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
基于Python函数和变量名解析
2019/07/19 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python中web框架的自定义创建
2019/09/08 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
大学生职业生涯规划方案
2014/01/03 职场文书
安全生产先进个人材料
2014/02/06 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
学期个人工作总结
2015/02/13 职场文书
小学班长竞选稿
2015/11/20 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL