markgo

第 2559 位会员

会员
个人信息
  • 加入于 2020-03-24 17:55:22
  • 最后登录时间 4年前
个人成就
  • 发表文章次数 1
  • 发布回复次数 6
  • 个人主页浏览次数 5
Fecmall-2.8.0版本发布4年前

@tgy3300 #11楼

在你原贴里已经给了解决方案了,
fecshop当时没这个问题估计是因为当时没有介入管理CORS这个,而是由NGINX去处理,或直接返回*。
具体我不清楚,也没考究的意义。

当fecmall开始接管了这个CORS后,这里确实是存在BUG,但是影响不大。
估计多数人配置都是返回*,
如果你有安全需要,其实自己百度下修改下代码也是几分钟就能解决了。
就算再不能解决,付费100估计大把人帮你解决。
不知道你购买的是fecmall哪个版本,如果你有何其他系统对比,fecmall价格基本属于半买半送,
对于这种非纯商业的,要求不能过高。
如果自己没解决问题的能力,使用开源软件并不是你最佳的选择。
fecmall 的 appserver 跨域配置支持多域名时,存在跨域bug,望修复4年前
public function getYiiAuthCors(){
	$protocol = (int)$_SERVER['SERVER_PORT'] == 80 ? 'http' : 'https';
	$domain = $protocol.'//'.$_SERVER['SERVER_NAME'];
	$cors_allow_headers = $this->getCorsAllowHeaders();
	$cors = $this->appserver_cors;
	$corsFilterArr = [];
	if (is_array($cors) && !empty($cors)) {
		if (isset($cors['Origin']) && $cors['Origin']) {
			if(stripos($domain,$cors['Origin']) === 0){
				$corsFilterArr[] = 'Access-Control-Allow-Origin: ' . $cors['Origin'];
			}
		}
		
		if (isset($cors['Access-Control-Allow-Headers']) && is_array($cors['Access-Control-Allow-Headers'])) {
			$cors_allow_headers = array_merge($cors_allow_headers, $cors['Access-Control-Allow-Headers']);
		}
		$corsFilterArr[] = 'Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, ' . implode(', ', $cors_allow_headers);    
		if (isset($cors['Access-Control-Allow-Methods']) && is_array($cors['Access-Control-Allow-Methods'])) {
			$corsFilterArr[] = 'Access-Control-Allow-Methods: ' . implode(', ',$cors['Access-Control-Allow-Methods']);
		}
		$corsFilterArr[] = 'Access-Control-Allow-Credentials: true';
	}
	
	return $corsFilterArr;
}

如果是HTTPS的话,需要注意$protocol的获取是否正确,如果获取不正确,建议nginx/httpd 增加下标记,程序里的判断修改下。

fecmall 的 appserver 跨域配置支持多域名时,存在跨域bug,望修复4年前

没看代码, 跨域实现基本都是基于Allow-Control-Allow-Origin来的吧, 而Allow-Control-Allow-Origin是不支持多条记录的, NGINX上的实现通过设置MAP来匹配当前访问域名是否符合MAP上的域名,返回对应的域名作为Allow-Control-Allow-Origin的值。 比方: www.baidu.com 访问的时候,匹配到了就返回Allow-Control-Allow-Origin:www.baidu.com www.qq.com 访问的时候,匹配到了就返回Allow-Control-Allow-Origin:www.qq.com

而不是直接返回多条记录。 如果是在程序里实现,你拿下当前访问域名,匹配下是否包含在你设定的域名中,如果是就增加个header返回。如果不是就不返回Allow-Control-Allow-Origin。

Fecbdc多商户分销系统 安装报错4年前

1.你是不是购买的是多商户?而不是多商户分销? 刚看了是多商户,多商户多分销是购买两个插件? 2.不兼容的话麻烦弹出下提示吧......

Fecbdc多商户分销系统 安装报错4年前

Fecyo - 中文国内电商商城系统(PC + H5双入口) ( 4.44MB ) 我重装了fecmall,然后再装上面的插件,也会提示Duplicate key。 这两个插件不兼容?

Fecbdc多商户分销系统 安装报错4年前

新安装最新版本, 购买了多商户三级分销插件 后台安装就报这个错了。

Your Site Analytics