本补丁 由 QQ 木偶人  提供

首先在  www\Application\Common\Common\function.php 文件添加一个方法

/**
 * 转换SQL关键字
 *
 * @param unknown_type $string
 * @return unknown
 */
function strip_sql($string) {
    $pattern_arr = array(
            "/\bunion\b/i",
            "/\bselect\b/i",
            "/\bupdate\b/i",
            "/\bdelete\b/i",
            "/\boutfile\b/i",
            "/\bor\b/i",
            "/\bchar\b/i",
            "/\bconcat\b/i",
            "/\btruncate\b/i",
            "/\bdrop\b/i",            
            "/\binsert\b/i", 
            "/\brevoke\b/i", 
            "/\bgrant\b/i",      
            "/\breplace\b/i", 
            "/\balert\b/i", 
            "/\brename\b/i",            
            "/\bmaster\b/i",
            "/\bdeclare\b/i",
            "/\bsource\b/i",
            "/\bload\b/i",
            "/\bcall\b/i", 
            "/\bexec\b/i",         
            "/\bdelimiter\b/i",            
          
    );
    $replace_arr = array(
            'union',
            'select',
            'update',
            'delete',
            'outfile',
            'or',
            'char',
            'concat',
            'truncate',
            'drop',            
            'insert',
            'revoke',
            'grant',
            'replace',
            'alert',
            'rename',
            'master',
            'declare',
            'source',
            'load',
            'call',                     
            'exec',         
            'delimiter',
                               
    );
 
    return is_array($string) ? array_map('strip_sql', $string) : preg_replace($pattern_arr, $replace_arr, $string);
}

其次需要替换一个方法 在文件 www\Application\Common\Common\function.php 找到方法 getIP()

 // 定义一个函数getIP() 客户端IP,
function getIP(){            
    if (getenv("HTTP_CLIENT_IP"))
         $ip = getenv("HTTP_CLIENT_IP");
    else if(getenv("HTTP_X_FORWARDED_FOR"))
            $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if(getenv("REMOTE_ADDR"))
         $ip = getenv("REMOTE_ADDR");
    else $ip = "Unknow";
    return htmlspecialchars($ip);
}

将以上方法替换为

// 定义一个函数getIP() 客户端IP,
function getIP(){            
    if (getenv("HTTP_CLIENT_IP"))
         $ip = getenv("HTTP_CLIENT_IP");
    else if(getenv("HTTP_X_FORWARDED_FOR"))
            $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if(getenv("REMOTE_ADDR"))
         $ip = getenv("REMOTE_ADDR");
    else $ip = "Unknow";
     
    if(preg_match('/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/', $ip))          
        return $ip;
    else
        return '';
}

方法添加完之后, 在 www\Application\Common\Conf\config.php 文件末尾 添加一行配置

    'DEFAULT_FILTER'        => 'strip_sql,htmlspecialchars',   // 系统默认的变量过滤机制
);

然后修改一下一个php文件 目录在 www\ThinkPHP\Library\Think\Db\Driver.class.php 代码 103 行 加上一行代码

// 复制这行加到相应位置

$this->options[PDO::ATTR_EMULATE_PREPARES]  =   false;

修改完成后记得 清除一下缓存

旧的版本 按照上述方法加上,   在新的发布版本里面 自带已经加上.

tpshop防止sql注入补丁相关推荐

  1. Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)

    漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697mod_accounting是Apache 1.3.x上的流 ...

  2. guestbook.php注入,TinyGuestBook 'sign.php'多个SQL注入漏洞

    发布日期:2012-09-23 更新日期:2012-10-04 受影响系统: TinyGuestBook TinyGuestBook 描述: ----------------------------- ...

  3. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  4. WordPress ProPlayer插件‘id’参数SQL注入漏洞

    漏洞名称: WordPress ProPlayer插件'id'参数SQL注入漏洞 CNNVD编号: CNNVD-201305-468 发布时间: 2013-05-22 更新时间: 2013-05-22 ...

  5. wordpress漏洞_多个WordPress插件SQL注入漏洞分析

    背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...

  6. SQL注入攻击的种类和防范手段

    观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...

  7. SQL注入是什么?如何防止?

    SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? SQL注入(SQLi)是一种 ...

  8. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞

    发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...

  9. SQL注入攻击再度肆虐殃及大量网站

    据研究人员称,上周一个自动SQL注入攻击劫掠了超过70,000个美国网站,并顺带攻击了访问这些网站的大量PC机用户.通过Google可以很容易搜索到受攻击的网站,网页内容千差万别,包括教育网和政府网域 ...

最新文章

  1. java底层语言_JAVA语言思维的底层基础
  2. mysql释放练级_面试官:谈谈Mysql事务隔离级别?
  3. Fashion-MNIST数据集发布一周年,论文引用量超250篇
  4. 使用 frida+dexdump对apk脱壳
  5. 玩转oracle 11g(8):使用profile管理用户口令
  6. 从wireshake分析http和https的通信过程
  7. PAT-乙级-1031. 查验身份证(15)
  8. 施一公:论文和科技实力是两回事,大家千万要分开
  9. 如何利用ArcScene建立3维地层模型
  10. JavaScript参考文档
  11. 中国安检设备行业市场发展分析及前景趋势展望报告2022-2028年
  12. debian 修改桌面背景
  13. 在WordPress中使用旋转文字创建“会话”横幅:第2部分
  14. wampserver安装错误 应用程序无法正常启动0xc000007b解决方法
  15. 我的世界java版种子多村庄_我的世界基岩版最佳的5个村庄种子
  16. summery(一)
  17. MSDN 、 RTM 、 OEM 、 VOL 四大版本之区别
  18. Excel表格怎么快速计算出算式结果
  19. 流媒体服务器,red5,EsayDSS,AdobeMediaServer5和阿里推流服务性能对比。flash播放器JWplayer CKplayers Aliplayer性能对比
  20. 制作杂志级图表的第二步:突破excel的图表元素

热门文章

  1. [家里蹲大学数学杂志]第036期泛函分析期末试题
  2. url的关键字不知道是uft-8还是GBK
  3. 虚拟化概述及VMware VSphere介绍(一)
  4. Linux 编译 mysql
  5. 二、逻辑回归算法梳理
  6. [计算机组成原理] Booth算法 —— 补码一位乘法
  7. Android Studio xml文件中的布局预览视图
  8. 为Docker容器设置静态IP
  9. volatile 关键字解析
  10. textarea样式