Use https in AJAX URL if site is accessed over https

https를 사용하지 않는 것으로 설정되어 있더라도 실제로 https로 접속했다면
https를 사용하는 것으로 간주하고, AJAX URL을 https로 생성하도록 합니다.

기대되는 효과:

1. 설정이 잘못되어서 로그인이 되지 않거나 AJAX 요청에 실패할 가능성 제거
2. https 접속이 가능한 사이트라면 최대한 https를 사용하도록 유도
This commit is contained in:
Kijin Sung 2021-09-13 01:10:36 +09:00
parent 53a7e4d90f
commit 263dc79090
2 changed files with 4 additions and 4 deletions

View file

@ -261,7 +261,7 @@ class Context
$site_module_info = ModuleModel::getDefaultMid() ?: new stdClass;
self::set('site_module_info', $site_module_info);
self::set('_default_timezone', ($site_module_info->settings && $site_module_info->settings->timezone) ? $site_module_info->settings->timezone : null);
self::set('_default_url', self::$_instance->db_info->default_url = self::getDefaultUrl($site_module_info));
self::set('_default_url', self::$_instance->db_info->default_url = self::getDefaultUrl($site_module_info, RX_SSL));
self::set('_http_port', self::$_instance->db_info->http_port = $site_module_info->http_port ?: null);
self::set('_https_port', self::$_instance->db_info->https_port = $site_module_info->https_port ?: null);
self::set('_use_ssl', self::$_instance->db_info->use_ssl = ($site_module_info->security === 'none' ? 'none' : 'always'));
@ -1824,9 +1824,9 @@ class Context
$site_module_info = $domain_infos[$domain] ?: $site_module_info;
}
$prefix = ($use_ssl && $site_module_info->security !== 'none') ? 'https://' : 'http://';
$prefix = ($use_ssl || $site_module_info->security !== 'none') ? 'https://' : 'http://';
$hostname = $site_module_info->domain;
$port = ($use_ssl && $site_module_info->security !== 'none') ? $site_module_info->https_port : $site_module_info->http_port;
$port = ($use_ssl || $site_module_info->security !== 'none') ? $site_module_info->https_port : $site_module_info->http_port;
$result = $prefix . $hostname . ($port ? sprintf(':%d', $port) : '') . RX_BASEURL;
return $result;
}

View file

@ -52,7 +52,7 @@
<!-- COMMON JS VARIABLES -->
<script>
var default_url = "{\Rhymix\Framework\URL::encodeIdna(Context::getDefaultUrl())}";
var default_url = "{\Rhymix\Framework\URL::encodeIdna(Context::getDefaultUrl(null, RX_SSL))}";
var current_url = "{\Rhymix\Framework\URL::encodeIdna($current_url)}";
var request_uri = "{\Rhymix\Framework\URL::encodeIdna($request_uri)}";
var current_lang = xe.current_lang = "{$lang_type}";