ecshop

EcShop之路-Smarty

对着背影说爱祢 提交于 2020-04-03 10:25:19
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址: http://jdb.jiudingcapital.com/phone.html 内部邀请码: C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为 430719 ,为 “ 中国 PE 第一股 ” ,市值超 1000 亿元。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 来源: http://www.cnblogs.com/dequan-lee/archive/2009/08/06/1540621.html 目前市面上有很多针对 PHP 的 MVC 模板,但 Smarty 无疑是在功能和速度上处于绝对领先地位的。 MVC(Model-View-Controller) 模型 - 视图 - 控制器,相信大家对这个概念不陌生,老李也就不详细解释了。 EcShop 肯定是要采用 MVC 架构的,不说大家也明白,网店市场的需求是千变万化的,客户对页面的外观组织形式和页面逻辑的要求可谓是

ecshop /includes/modules/payment/alipay.php SQL Injection Vul

久未见 提交于 2020-03-19 01:28:21
catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 ECSHOP支付插件存在SQL注入漏洞,此漏洞存在于/includes/modules/payment/alipay.php文件中,该文件是ECshop的支付宝插件。由于ECShop使用了str_replace函数做字符串替换,黑客可绕过单引号限制构造SQL注入语句。只要开启支付宝支付插件就能利用该漏洞获取网站数据,且不需要注册登入。GBK与UTF-8版本ECshop均存在此漏洞 Relevant Link: http://sebug.net/vuldb/ssvid-60643 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 /includes/modules/payment/alipay.php function respond() { if (!empty($_POST)) { foreach($_POST as $key => $data) { $_GET[$key] = $data; } } $payment = get_payment($_GET['code']); $seller_email = rawurldecode($_GET['seller_email']); $order_sn = str_replace($

ECSHOP支持用手机号码登录、邮箱登录、Email登录

不想你离开。 提交于 2020-03-07 12:20:30
之前在网上搜索的不起作用,看代码没问提啊 原来是那方法有一定的局限性, 就是“用户登录”页面必须“启用验证码” 其实很简单,就是把那段代码换了个位置就OK了。 以下是具体的方法: 修改 User.php 文件 找到 if ($user->login($username, $password,isset($_POST['remember']))) 在它上边增加一段 ECSHOP代码 if(is_email($username)) { $sql ="select user_name from ".$ecs->table('users')." where email='".$username."'"; $username_e = $db->getOne($sql); if($username_e) $username=$username_e; } if(is_telephone($username)) { $sql ="select user_name from ".$ecs->table('users')." where mobile_phone='".$username."'"; $username_e = $db->getOne($sql); if($username_e) $username=$username_e; } 继续在 user.php 的底部再增加一段代码

Apache提示You don't have permission to access / on this server问题解决

大城市里の小女人 提交于 2020-03-06 05:27:04
一、 马上打开apache的配置文件httpd.conf,逐行检查。在大约快一半的地方有以下这段代码: 代码如下 复制代码 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> 发现了吧。由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。 代码如下 复制代码 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow allow from all </Directory> 二、 今天为了方便测试,将一本地目录设置为一apache的虚拟主机,在httpd-vhosts.conf文件中进行简单设置,然后在hosts文件中将访问地址指向本地,启动apache,进行访问,却出现了You don't have permission to access / on this server的提示,baidu了一下,原来是因为我的虚拟主机目录为非apache安装目录下的htdocs,所以违反了apache对默认对网站根访问权限。 apache的默认虚拟主机根目录地址为..

ecshop 后台分页功能

泄露秘密 提交于 2020-03-03 14:03:33
Ecshop分页规则,分以下几个步骤 1.点击类别,获取第一页获取默认分类列表数据 2.点击“下一页”,采用ajax调取分页内容 实例分析(比如订单列表分页admin/order.php) 1.先写一个function order_list() 模块,里面要包括可以进行排序,分页,查询等功能 2.在order.php里面写一个elseif ($_REQUEST['act'] == 'list') ,这里是显示默认分页数据 3.在order.php写一个query( listtable.js默认的是先读取 $_REQUEST['act'] == 'query' )排序、分页、查询都在query里面完成 4.html页面(默认order_list.html完整代码) 实战 ”微仓功能“ 1.我先写一个function depot_log_list,可以进行排序、分类、查询。这个function里面很有讲究的 重点代码 function depot_list() { //*f.获取上一次保存的查询条件(如果上一次有进行查询过,则直接从f开始) $result = get_filter(); if ($result === false) {    // a.查询条件    $filter['goods_id'] = empty($_REQUEST['goods_id']) ? '' :

解决ecshop清除缓存css样式没反应问题

折月煮酒 提交于 2020-03-03 09:36:31
部分浏览器例如谷歌或360等双核浏览器会对商城的css样式进行缓存,导致修改了css样式文件也没有更新。 ecshop模板 提供解决方法,修改后效果如下: 解决方法: 修改includes/init.php 找到 if (!empty($_CFG['stylename'])) { $smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style_' . $_CFG['stylename'] . '.css'); } else { $smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style.css'); } 修改为: if (!empty($_CFG['stylename'])) { $smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style_' . $_CFG['stylename'] . '.css?'.time()); } else { $smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style.css?'.time()); } 修改后,style

Ecshop如何解决Deprecated: preg_replace()报错

喜夏-厌秋 提交于 2020-03-02 04:26:35
今天安装Ecshop后,运行出现各种问题,其中 Deprecated: preg_replace() 之类的报错最多,下面贴出解决方案: 错误原因:   preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。    如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似下面这样的错误:    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in...... 解决办法:    1. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 300        原有内容:       return preg_replace("/{([^\}\{ ]*)}/e", "\$this->select('\\1');", $source);     修改后内容:       return preg_replace_callback("/{([^\}\{ ]*)}/", function($r) {

ecshop用户登录问题及ecshop购物车问题解决办法

回眸只為那壹抹淺笑 提交于 2020-03-01 01:13:08
关于ecshop2.7.0在部分IE浏览器下丢$_SESSION的问题、ecshop 用户登陆后自动跳出的问题 经查常是$_SESSION丢失,在网上查找发现IE6也有不少SESSION丢失的问题,这时,就要通过COOKIE来找回登录状态,但是 includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法后一切正常了: /** * 检查cookie * * @access public * @param * * @return void */ function check_cookie () { if ( isset($_COOKIE['ECS']) && isset($_COOKIE['ECS']['user_id']) && isset($_COOKIE['ECS']['password'])) { $ecs_user_id = $_COOKIE['ECS']['user_id']; $ecs_user_pass = $_COOKIE['ECS']['password']; $sql = "SELECT " . $this->field_name ." AS user

网站安全公司对于网站逻辑漏洞的修复方案分享

久未见 提交于 2020-02-28 21:01:01
在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课。关于网站逻辑漏洞的总结,今天跟大家详细讲解一下。 网站逻辑漏洞 用户的隐私信息属于数据的保护的最高级别,也是最重要的一部分数据,在逻辑漏洞当中属于敏感信息泄露,有些敏感信息还包括了系统的重要信息,比如服务器的版本linux或者windows的版本,以及网站使用的版本,比如php版本,mysql版本,系统开发的版本,像dedecms,ECShop版本等等的信息都属于敏感信息的一部分。这些数据如果被泄露出去,那么入侵者就会尝试多个方法对系统进行攻击,获取到的敏感信息越多,系统受攻击的程度越大。有一些网站的敏感信息包括客户的注册资料,手机号,身份证号码及扫描件,名字,年月日。这些用户的资料如果被泄漏直接受危害的就是客户本身,比如这次酒店客户资料泄漏事件的发生,带来的危害太大了。 那么逻辑漏洞的产生导致敏感信息泄漏主要的过程是什么呢?首先通过用户资料敏感信息的传输过程,传输到网站系统里去并展示,网站的前端以及APP客户端的代码注释,再经由错误代码的安全测试,都会导致敏感信息的泄漏。

适用于yii1.1的thinkphp化的db操作类

拈花ヽ惹草 提交于 2020-02-27 01:56:57
前段时间的一个项目是要对一个用yii1.1写的商城做修改,不怎么好写,不过比面向过程的ecshop好得多,之前刚开始改ecshop还真是头大 yii1.1其中数据库操作花了我不少时间去找各种例子进行测试,出于日后可能还要改的原因,我将数据库的一些操作改成了thinkphp的形式,代码如下 <?php /**gcud数据库操作 * @version 20191231 */ class gcudDb { private $TableName; private $Conditions; private $ConditionsParameters; private $FieldsString; private function getDbCommand() { return \Yii::app()->db->createCommand(); } private function BuildCondition() { $this->ConditionsParameters = []; $this->ConditionsParameters['fieldString'] = ''; $this->ConditionsParameters['parameters'] = []; if ($this->Conditions) foreach ($this->Conditions as $Key =