ecshop系统部署在阿里云服务器上,阿里云提示Web-CMS漏洞:

修复方法如下:

0. /good.php

大概在第80行

$goods_id  = $_REQUEST['id']; 

修改为

$goods_id  = intval($_REQUEST['id']);

  

1. /admin/shopinfo.php

大概在第53、71、105、123行,4个地方修复方式都一样

admin_priv('shopinfo_manage');

修改为

admin_priv('shopinfo_manage');
$_REQUEST['id'] = intval($_REQUEST['id']);

2. /admin/shophelp.php

大概在第81、105、133、155行,4个地方修复方式都一样

admin_priv('shophelp_manage');

修改为

admin_priv('shophelp_manage');
$_POST['id'] = intval($_POST['id']);

3. /api/client/includes/lib_api.php

大概在第246行,API_UserLogin()函数中

 
/* SQL注入过滤 */
if (get_magic_quotes_gpc()) {
$post['UserId']=$post['UserId']
} else {
$post['UserId']=addslashes($post['UserId']);
}
$post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';
$post['password'] = isset($post['Password']) ? strtolower(trim($post['Password'])) : '';
 

4. /admin/edit_languages.php

大概在第120行

$dst_items[$i] = $_POST['item_id'][$i] .' = '. '"' .$_POST['item_content'][$i]. '";';

修改为

$dst_items[$i] = $_POST['item_id'][$i] .' = '. '\'' .$_POST['item_content'][$i]. '\';';

5. /admin/affiliate_ck.php

所有的$_GET['auid']修改成intval($_GET['auid']);

 $_GET['auid'];

修改为

 intval($_GET['auid']);

6. /admin/comment_manage.php

大概在第336行,get_comment_list()函数中

$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'add_time' : trim($_REQUEST['sort_by']);
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);

修改为

$sort = array('comment_id','comment_rank','add_time','id_value','status');
$filter['sort_by'] = in_array($_REQUEST['sort_by'], $sort) ? trim($_REQUEST['sort_by']) : 'add_time';
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : 'ASC';

7. /includes/modules/payment/alipay.php 和 /app/includes/modules/payment/alipay.php

大概在第183行,respond()函数中

$order_sn = trim($order_sn);

修改为

$order_sn = trim(addslashes($order_sn));

8. /includes/lib_insert.php

对以下变量进行过滤

$arr['id'] = intval($arr['id']);
$arr['num'] = intval($arr['num']);
$arr['type'] = addslashes($arr['type']);

9. /admin/integrate.php

大概在第109行

$code = empty($_GET['code']) ? '' : trim($_GET['code']);

修改为

$code = empty($_GET['code']) ? '' : trim(addslashes($_GET['code']));

ecshop常见sql注入修复(转)的更多相关文章

  1. 关于ECSHOP中sql注入漏洞修复

    标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...

  2. 常见sql注入的类型

    这里只讲解sql注入漏洞的基本类型,代码分析将放在另外一篇帖子讲解 目录 最基础的注入-union注入攻击 Boolean注入攻击-布尔盲注 报错注入攻击 时间注入攻击-时间盲注 堆叠查询注入攻击 二 ...

  3. 常见SQL注入点判断

    sql注入手工检测 SQL注入手工检测 1基本检测 数字型 字符型 搜索型 POST注入 布尔盲注 报错注入 堆叠注入 判断是什么数据库 2绕过技巧 大小写 替换关键字 使用编码 注释和符号 等价函数 ...

  4. XSS过滤JAVA过滤器filter 防止常见SQL注入

    Java项目中XSS过滤器的使用方法. 简单介绍: XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩 ...

  5. 常见sql注入的防范总结

    在平时的开发过程中,我们可能很少会刻意的去为项目做一个sql注入的防范,这是因为你可能因为使用了某些框架,而无意间已经有了对应sql注入的一些防范操作(比如mybatis使用#{XX}传参,属于预编译 ...

  6. 常见sql注入原理详解!

    1.首先我们创建一个mysqli的链接 /**数据库配置*/ $config = ['hostname'=>"localhost", 'port'=>"330 ...

  7. 转:PHP中防止SQL注入的方法

    [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...

  8. php防止SQL注入详解及防范

    SQL 注入是PHP应用中最常见的漏洞之一.事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义( ...

  9. 【sql注入教程】SQL注入是什么?我们如何去玩转它

    [sql注入教程]SQL注入是什么?我们如何去玩转它 本文转自:i春秋社区   SQL注入攻击是黑客攻击数据库最常见手段之一.简单讲,SQL注入攻击是黑客利用网站程序漏洞,通过提交精心构造的SQL语句 ...

随机推荐

  1. 使用深度学习检测TOR流量——本质上是在利用报文的时序信息、传输速率建模

    from:https://www.jiqizhixin.com/articles/2018-08-11-11 可以通过分析流量包来检测TOR流量.这项分析可以在TOR 节点上进行,也可以在客户端和入口 ...

  2. Vue中 computed 和 methods的区别

    涉及到计算部分的时候,计算属性是基于它们的依赖进行缓存的,如果说值不变,那么它就不会去重新执行,只有当值发生了改变,它才会去重新执行一次,其它时候它都是缓存的.而方法则会反复计算处理.二者之间的差距就 ...

  3. vue 小知识

    图片: 1.img 的路径 <img :src="item.src"/> 2.背景图片的路径 v-bind:style="{backgroundImage: ...

  4. py propterties reuqest.post

    import tracebackclass Properties(object): def __init__(self, fileName): self.fileName = fileName sel ...

  5. python xlrd使用

    python xlrd使用 1● xlrd安装   管理员模式           success 2● 引用 import xlrd    

  6. shell IF分支判断语句

    单分支IF条件语句 if [ 条件判断式 ] then  程序: fi //结束的时候if反过来写 fi ----------------------------- /** * if test -d ...

  7. 【oracle】一些的常用命令

    命令行连接oracle sqlplus  回车 分别输入用户名和密码 命令行重启oracle数据库 sqlplus /nolog conn 账号/密码 as sysdba shutdow immedi ...

  8. C++解析五-this 指针,指向类的指针

    C++this指针 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址.this 指针是所有成员函数的隐含参数.因此,在成员函数内部,它可以用来指向调用对象.友元函数没有 this 指 ...

  9. Java代理:静态代理、动态代理

    要理解动态代理,需要先理解反射(http://www.cnblogs.com/Donnnnnn/p/7729443.html) 通俗理解: 在很多底层框架中都会用得到,比如struts,Spring等 ...

  10. python 正则表达式笔记

    #!usr/bin/env python3 #-*- coding:utf-8 -*- #正则表达式 #在正则表达式中,如果直接给出字符,就是精确匹配.用\d可以匹配一个数字,\w可以匹配一个字母.数 ...