请选择 进入手机版 | 继续访问电脑版

巅峰霸主

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ecshop this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,RE...

  [复制链接] [添加相关主题]
godkings 发表于 2019-10-7 17:14:23 | 显示全部楼层 |阅读模式
阿里云服务器2折起!

游客只能显示部分内容,请登录后查看帖子完整内容!!!注册完全免费。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ecshop后台执行sql语句出现this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT错误解决方法,版本ecshop2.7.3.

一)、
首先说一下错误现象:
市面上流行的绝大部分ECSHOP模板,安装的时候都需要执行一段或几段SQL语句来修改数据结构或者初始化一些数据。大多数ECSHOP管理员为了省事,都会通过 “ECSHOP后台》数据库管理 》SQL查询” 来执行这些SQL语句。这时问题就来了,当你粘贴进SQL语句,点“提交查询”时,系统就会报出下面的错误:
this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT

如图
221532299472095.png
注意:
上述错误只有在打了ECSHOP2.7.3最新补丁的系统下才会出现,如果您的ECSHOP系统没有打最新补丁,是不会出现这个错误提示。

下面来说一下错误原因:

之所以会出现上面的错误提示,是因为ECSHOP2.7.3最新补丁文件,对ECSHOP后台的“SQL查询”功能做了限制,
只允许执行 select 查询语句,除select之外的其他查询语句,诸如 alter, update, delete, truncate等之类的SQL语句都是被禁止执行的。



二)、

下面再来说一说解决方法:

打开 admin/sql.php  找到下面这段代码,删掉即可,大约44~56行(不建议删除,可以先将其注释,执行完sql语句以后再恢复,这样也是保证网站防止sql注入安全):
  1.     if(!empty($_POST['sql']))
  2.     {
  3.         preg_match_all("/(SELECT)/i", $_POST['sql'],$matches);
  4.         if(isset($matches[1]) && count($matches[1])>1)
  5.         {
  6.              sys_msg("this sql more than one SELECT ");
  7.         }

  8.         if(preg_match("/(UPDATE|DELETE|TRUNCATE|ALTER|DROP|FLUSH|INSERT|REPLACE|SET|CREATE|CONCAT)/i", $_POST['sql']))
  9.         {
  10.             sys_msg("this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT ");
  11.         }
  12.     }
复制代码


上一篇:ECShop远程代码执行高危漏洞阿里云提示的修复方法
下一篇:ECShop在任何页面调用最新文章并变成随机文章
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|巅峰霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与巅峰霸主网无关。

禁止在巅峰霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2019-10-16 18:24 , Processed in 0.088728 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表