tpshop防止sql注入补丁
本补丁 由 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注入补丁相关推荐
- Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)
漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697mod_accounting是Apache 1.3.x上的流 ...
- guestbook.php注入,TinyGuestBook 'sign.php'多个SQL注入漏洞
发布日期:2012-09-23 更新日期:2012-10-04 受影响系统: TinyGuestBook TinyGuestBook 描述: ----------------------------- ...
- 深入理解SQL注入绕过WAF和过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- WordPress ProPlayer插件‘id’参数SQL注入漏洞
漏洞名称: WordPress ProPlayer插件'id'参数SQL注入漏洞 CNNVD编号: CNNVD-201305-468 发布时间: 2013-05-22 更新时间: 2013-05-22 ...
- wordpress漏洞_多个WordPress插件SQL注入漏洞分析
背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...
- SQL注入攻击的种类和防范手段
观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...
- SQL注入是什么?如何防止?
SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? SQL注入(SQLi)是一种 ...
- 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞
发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...
- SQL注入攻击再度肆虐殃及大量网站
据研究人员称,上周一个自动SQL注入攻击劫掠了超过70,000个美国网站,并顺带攻击了访问这些网站的大量PC机用户.通过Google可以很容易搜索到受攻击的网站,网页内容千差万别,包括教育网和政府网域 ...
最新文章
- java底层语言_JAVA语言思维的底层基础
- mysql释放练级_面试官:谈谈Mysql事务隔离级别?
- Fashion-MNIST数据集发布一周年,论文引用量超250篇
- 使用 frida+dexdump对apk脱壳
- 玩转oracle 11g(8):使用profile管理用户口令
- 从wireshake分析http和https的通信过程
- PAT-乙级-1031. 查验身份证(15)
- 施一公:论文和科技实力是两回事,大家千万要分开
- 如何利用ArcScene建立3维地层模型
- JavaScript参考文档
- 中国安检设备行业市场发展分析及前景趋势展望报告2022-2028年
- debian 修改桌面背景
- 在WordPress中使用旋转文字创建“会话”横幅:第2部分
- wampserver安装错误 应用程序无法正常启动0xc000007b解决方法
- 我的世界java版种子多村庄_我的世界基岩版最佳的5个村庄种子
- summery(一)
- MSDN 、 RTM 、 OEM 、 VOL 四大版本之区别
- Excel表格怎么快速计算出算式结果
- 流媒体服务器,red5,EsayDSS,AdobeMediaServer5和阿里推流服务性能对比。flash播放器JWplayer CKplayers Aliplayer性能对比
- 制作杂志级图表的第二步:突破excel的图表元素