当前位置:  编程技术>php

php防止sql注入函数(discuz)

    来源: 互联网  发布时间:2014-08-30

    本文导语:  最早开始学习php的时候根本没考虑过安全方面的问题,那时候就是想能做出功能就是万岁了。 随着做项目的时间慢慢加长,越来越感觉到网站安全方面的问题十分重要。 最近在做一个主题投票网站,客户懂一些程序方面的东...

最早开始学习php的时候根本没考虑过安全方面的问题,那时候就是想能做出功能就是万岁了。
随着做项目的时间慢慢加长,越来越感觉到网站安全方面的问题十分重要。

最近在做一个主题投票网站,客户懂一些程序方面的东西。有特别要求需要过滤一些字符防止sql注入。
本来这方面就没有特别的研究过。呵呵,又发扬了一回拿来主义。把discuz论坛的sql防注入函数取了来!

代码:
 

代码示例:

$magic_quotes_gpc = get_magic_quotes_gpc();
@extract(daddslashes($_COOKIE));
@extract(daddslashes($_POST));
@extract(daddslashes($_GET));
if(!$magic_quotes_gpc) {
$_FILES = daddslashes($_FILES);
}

function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}

大家可以增强下面的代码加以保护服务器的安全,PHP防止SQL注入安全函数十分重要!
 

代码示例:

/*
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
参  数:$sql_str: 提交的变量 www.
返 回 值:返回检测结果,ture or false
*/
function inject_check($sql_str) {
return eregi('select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str); // 进行过滤
}

/*
函数名称:verify_id()
函数作用:校验提交的ID类值是否合法
参  数:$id: 提交的ID值
返 回 值:返回处理后的ID
*/
function verify_id($id=null) {
if (!$id) { exit('没有提交参数!'); } // 是否为空判断
elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断
elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断
$id = intval($id); // 整型化

return $id;
}

/*
函数名称:str_check()
函数作用:对提交的字符串进行过滤
参  数:$var: 要处理的字符串
返 回 值:返回过滤后的字符串
*/
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;
}

/*
函数名称:post_check()
函数作用:对提交的编辑内容进行处理
参  数:$post: 要提交的内容
返 回 值:$post: 返回过滤后的内容
*/
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防止sql注入代码
放到公用调用文件(如conn数据库链接文件),对所有GET或POST的数据进行过滤特殊字符串,以实现简单有效的SQL注入过滤。
代码:
 

代码示例:

    
 
 

您可能感兴趣的文章:

  • php防止sql注入代码实例
  • PHP MYSQL注入攻击需要预防7个要点
  • php is_numberic函数产生sql注入漏洞怎么解决
  • php过滤参数特殊字符防注入
  • php防SQL注入代码(360提供)
  • Discuz7.2版的faq.php SQL注入漏洞分析
  • PHP登录环节防止sql注入的方法浅析
  • PHP防范SQL注入的具体方法详解(测试通过)
  • php防范sql注入方法与实例代码
  • php防止sql注入的代码示例
  • php中sql注入漏洞示例 sql注入漏洞修复
  • php防止sql注入函数用法
  • php如何防范sql注入攻击 sql注入原理解析
  • php过滤特殊字符sql防注入代码
  • php sql注入攻击与防范注意事项
  • Python写的Discuz7.2版faq.php注入漏洞工具
  • php防止sql注入实例解析
  • PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
  • PHP的substr() 函数用法
  • php构造函数与析构函数
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • php构造函数与析构函数初探
  • php session_id()函数介绍及代码实例
  • PHP中的Pack()函数,Java有哪个函数与之对应???
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • php构造函数与析构函数 php内存管理函数
  • php将html特殊字符转换成html字符串的函数:htmlspecialchars()介绍及代码举例
  • php数组函数之array_combine() 数组合并函数
  • php使用socket_bind()函数绑定IP地址
  • php构造函数和析构函数学习
  • php将unix时间戳转换成字符串时间函数(date)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP防止表单重复提交的几种常用方法汇总
  • php实现cc攻击防御和防止快速刷新页面示例
  • php防止页面后退的方法
  • php伪造ip与防止伪造ip方法解析
  • PHP如何防止post重复提交数据 实例代码
  • php防止伪造的数据从URL提交方法
  • php防止伪造数据从地址栏URL提交的方法
  • php文件下载(防止中文文件名乱码)的示例代码
  • php如何防止地址栏URL提交伪造数据?
  • PHP连接MySQL的2种方法小结以及防止乱码
  • PHP防止post重复提交数据的简单例子
  • php防止刷流量攻击实现代码
  • php防止刷新与重复提交实例代码
  • php伪造referer 使用referer防止图片盗链
  • 使用php伪造referer的方法 利用referer防止图片盗链
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS
  • php通过socket_bind()设置IP地址代码示例
  • php服务器探针显示php服务器信息
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5) iis7站长之家
  • PHP缓存加速器 Alternative PHP Cache (APC)
  • PHP介绍及学习网站推荐
  • PHP源文件加密工具 PHP Screw




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3