mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 03:01:43 +09:00
fix for Not-Alphabet URL
https://github.com/xpressengine/xe-core/issues/634 # Internet Explorer send punycode URL(ASCII) URL and non-alphabet Unicode URL URL as a referer. 인터넷 익스플로러는 리퍼러 주소로 퓨니코드 주소와 유니코드 URL을 섞어 쓰고 있습니다. AJAX 통신에는 리퍼러로 Unicode를 사용하고 요청 호스트로는 퓨니코드 URL을 사용(이건 다국어 주소 형식으로 접속하려면 이렇게 했어야 할 것)합니다. - XE strictly compare referer and server host for denying CSRF, but punycode URL and Unicode URL should be dealt as a same one. 그런데 XE는 리퍼러의 호스트와 서버 호스트를 비교합니다. punycode로 쓰인 주소와 Unicode로 쓰인 주소는 같은 주소를 지시하더라도 문자열이 다릅니다. 같은 주소를 지칭하는 다른 문자열을 punycode로 변환해서 같은 주소라고 인식할 수 있게 수정했습니다. - Fix checkCSRF function to deal both form as a same one. - Convert Unicode URL input to punycode URL on the Admin Default URL Settings. 관리자가 유니코드 형식으로 기본 주소를 입력하더라도, 퓨니코드로 변환해 저장하도록 했습니다. 퓨니코드로 저장하는 것이 여러모로 유용하기 때문입니다. - For converting punycode URL, include IDNA coverting class. 퓨니코드와 유니코드 간 변환을 위해서 IDNA 변환 클래스(LGPL사용권)를 포함시켰습니다.
This commit is contained in:
parent
c3430d1c72
commit
d2b05732ab
8 changed files with 4748 additions and 1 deletions
|
|
@ -71,6 +71,12 @@ class installAdminController extends install
|
|||
|
||||
$default_url = Context::get('default_url');
|
||||
if($default_url && strncasecmp('http://', $default_url, 7) !== 0 && strncasecmp('https://', $default_url, 8) !== 0) $default_url = 'http://'.$default_url;
|
||||
if($default_url && substr($default_url, -1) !== '/') $default_url = $default_url.'/';
|
||||
|
||||
/* convert NON Alphabet URL to punycode URL - Alphabet URL will not be changed */
|
||||
require_once(_XE_PATH_ . 'libs/idna_convert/idna_convert.class.php');
|
||||
$IDN = new idna_convert(array('idn_version' => 2008));
|
||||
$default_url = $IDN->encode($default_url);
|
||||
|
||||
$use_ssl = Context::get('use_ssl');
|
||||
if(!$use_ssl) $use_ssl = 'none';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue