ecshop有个地方配置admin的目录名
data/config.php
的
$admin_dir = “admin”;
但是直接改不行,因为很多地方,这个目录名字被硬编码进去了,直接改会有很多地方报错。
网上搜到一篇文章,整理了一些需要修改的地方,内容转帖如下:
1.修改data/config.php 1. $admin_dir = "admin"; 修改成 1. $admin_dir = "新目录名"; 2.修改admin/index.php 1. //货号 2. require_once(ROOT_PATH . 'admin/includes/lib_goods.php'); 修改成 1. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 3.修改admin/database.php 1. require_once(ROOT_PATH . 'admin/includes/cls_sql_dump.php'); 修改成 1. require_once(ROOT_PATH . $admin_dir.'/includes/cls_sql_dump.php'); 4.修改admin/get_password.php 1. $reset_email = $ecs->url() . 'admin/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code; 2. 修改成 3. $reset_email = $ecs->url() . $admin_dir.'/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code; 5.修改admin/goods.php 1. require_once(ROOT_PATH . '/admin/includes/lib_goods.php'); 2. 修改成 3. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 6.修改admin/check_file_priv.php 1. $dir[] = 'admin'; 2. 修改成 3. $dir[] = $admin_dir; 7.修改admin/includes/init.php 1. if (file_exists(ROOT_PATH . 'data/config.php')) 2. { 3. include(ROOT_PATH . 'data/config.php'); 4. } 5. else 6. { 7. include(ROOT_PATH . 'includes/config.php'); 8. } 9. 修改成下面代码,并将代码移至“/* 取得当前ecshop所在的根目录 */”注释之前。 10. if (file_exists('../data/config.php')) 11. { 12. include('../data/config.php'); 13. } 14. else 15. { 16. include('../includes/config.php'); 17. } 1. define('ROOT_PATH', str_replace('admin/includes/init.php', '', str_replace('\\', '/', __FILE__))); 2. 修改成 3. define('ROOT_PATH', str_replace($admin_dir.'/includes/init.php', '', str_replace('\\', '/', __FILE__))); 1. require(ROOT_PATH . 'admin/includes/lib_main.php'); 2. 修改成 3. require(ROOT_PATH . $admin_dir.'/includes/lib_main.php'); 1. require(ROOT_PATH . 'admin/includes/cls_exchange.php'); 2. 修改成 3. require(ROOT_PATH . $admin_dir.'/includes/cls_exchange.php'); 1. $smarty->template_dir = ROOT_PATH . 'admin/templates'; 2. 修改成 3. $smarty->template_dir = ROOT_PATH . $admin_dir.'/templates'; 1. $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . 'admin'; 2. 修改成 3. $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . $admin_dir; 8.修改include/lib_main.php 1. include_once(ROOT_PATH . 'admin/includes/lib_template.php'); 修改成 1. 2. global $admin_dir; 3. include_once(ROOT_PATH . $admin_dir.'/includes/lib_template.php'); 9.修改include/cls_ecshop.php 1. $curr = strpos(PHP_SELF, 'admin/') !== false ? 2. preg_replace('/(.*)(admin)(\/?)(.)*/i', '\1', dirname(PHP_SELF)) : 3. dirname(PHP_SELF); 修改成 1. global $admin_dir; 2. $curr = strpos(PHP_SELF, $admin_dir.'/') !== false ? 3. preg_replace('/(.*)('.$admin_dir.')(\/?)(.)*/i', '\1', dirname(PHP_SELF)) : 4. dirname(PHP_SELF); 10.如果担心$admin_dir变量注入安全问题可以在data/config.php文件中define('EC_CHARSET','utf-8');后增加 1. define('ADMIN_DIR','新目录名'); 然后将所有修改的$admin_dir变量修改成ADMIN_DIR,例如: 1. require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php'); 2. 修改成 3. require_once(ROOT_PATH . ADMIN_DIR.'/includes/lib_goods.php'); 11.根据pjb126 网友提示修改/admin/picture_batch.php 将 1. include_once(ROOT_PATH . '/admin/includes/lib_goods.php'); 2. 修改成 3. include_once(ROOT_PATH .$admin_dir.'/includes/lib_goods.php'); 12.新增修改quotation.php 1. include_once(ROOT_PATH . 'admin/includes/lib_main.php'); 修改成 1. 2. global $admin_dir; 3. include_once(ROOT_PATH . $admin_dir.'/includes/lib_main.php');
但是,我改过这些之后,还发现可能还有三个文件需要修改
admin/filecheck.php:
api/client/includes/lib_api.php
ecshopfiles.md5
关键字 ‘admin’
《 “修改ecshop后台admin目录为任意目录名” 》 有 5 条评论
改了ec依然很容易就被破解掉后台···
能否指点一下?
改了ec依然很容易就被破解掉后台···
有什么好办法请赐教
谢谢,正想改呢