Commit graph

571 commits

Author SHA1 Message Date
Kijin Sung
baddbd3cba Support XE-compatible rewrite rules 2020-06-12 14:16:36 +09:00
Kijin Sung
f01fb9ae42 Merge branch 'develop' into next 2020-06-12 10:28:36 +09:00
Kijin Sung
494e0ee028 Clean up usage of is_countable() 2020-06-08 20:35:54 +09:00
Min-Soo Kim
a641b3103a is_countable?! 2020-06-07 22:56:21 +09:00
Kijin Sung
4f1264dee5
Merge pull request #1292 from kijin/pr/object-cleanup
모듈 클래스 인스턴스를 직접 생성할 수 있도록 개선
2020-05-20 21:34:41 +09:00
Kijin Sung
14ad62e869 Fix incorrect use of curly braces in legacy classes 2020-05-19 20:52:44 +09:00
Kijin Sung
052930a6d4 Replace some usages of getModel(), getController(), etc. with getInstance() 2020-05-18 21:45:44 +09:00
Kijin Sung
2cbfd4500c Remove error_return_url more efficiently 2020-05-18 19:54:05 +09:00
Kijin Sung
586f010f55 Allow passing an array of keys/values to getUrl()
getUrl()을 호출할 때 파라미터 이름과 파라미터 값을 풀어서 각각의 파라미터로
넘길 필요 없이, 하나의 연관배열로 넘길 수 있도록 허용합니다.

    $args = array(
        'mid' => $mid,
        'document_srl' => $document_srl,
    );

    getUrl($args);

이 문법을 사용하면 맨 앞에 빈 문자열을 넘겼을 때와 마찬가지로 기존의 URL
파라미터들은 모두 초기화됩니다. 즉 아래와 동일한 효과입니다.

    getUrl('', 'mid', $mid, 'document_srl', $document_srl);

기존의 URL 파라미터들을 남겨놓으려면 기존 방식대로 풀어서 써야 합니다.
2020-05-18 19:41:06 +09:00
Kijin Sung
efc0d55f98 Restrict UA and lang_type cookies to RX_BASEURL 2020-04-04 23:17:04 +09:00
Kijin Sung
339fd234a5 Show where an Exception was thrown or error object was returned
- 관리자에게만 표시함
  - 오류 화면을 표시하는 방식에 따라서는 표시되지 않을 수 있음
  - 코어 내부에서 발생하는 오류는 표시되지 않을 수 있음
  - message 모듈 스킨에 의존함
2020-03-19 00:58:30 +09:00
conory
3efc2a6b13 _rx_ajax_form 파라미터로 폼 제출 종류를 구분할 수 있도록 변경 2019-12-30 11:51:16 +09:00
conory
9e6005ccbc form rx_ajax 사용시 XE_VALIDATOR_MESSAGE 세션을 이용한 메세지 표시가 되지 않는 문제 수정 2019-12-25 23:01:37 +09:00
Kijin Sung
9694e5da14 Fix #1208 remove double escape of '&' character from filename 2019-11-22 20:28:39 +09:00
Kijin Sung
69611520c3 Support submitting arbitrary forms by AJAX or IFRAME 2019-10-10 01:56:38 +09:00
Kijin Sung
ecd36ae815 Set RX_BASEURL earlier in CLI mode 2019-03-26 10:57:59 +09:00
conory
ed7368e6d9 회원 기본스킨에서 로그인시 비밀번호가 escape되는 문제 수정
https://xetown.com/contact/1149729

히스토리도 뒤져봤지만 로그인 폼에서만 action="./" 이 오지 못할 이유를 찾을 수 없어 변경함
2019-01-17 23:03:50 +09:00
Kijin Sung
a83785bc42 Don't accept empty key for Context::set() and Context::get()
https://xetown.com/questions/1130915
2018-12-19 15:52:26 +09:00
Kijin Sung
8c5e32945b Don't accept empty key for Context::set() and Context::get()
https://xetown.com/questions/1130915
2018-12-19 15:51:23 +09:00
Kijin Sung
6a9a884680 Fix XEVE-18-006 2018-12-18 15:50:45 +09:00
Kijin Sung
199ab101ce Force session.serialize_handler to 'php' if using DB session
xpressengine/xe-core#2357
2018-12-12 13:55:19 +09:00
Kijin Sung
af64ae79c1 Rename checkXEE() to checkXXE() 2018-10-18 14:21:08 +09:00
Kijin Sung
f8b0ca6a78 Improve granularity of Context security check
정규식에 따라 모두 막을지, 관리자만 허용할지 구분할 수 있도록 하고
이를 참조하여 <script> 태그는 관리자만 허용, PHP 태그는 모두 막도록 변경.
2018-10-13 16:42:19 +09:00
Kijin Sung
06349cdd98 Fix excessively strict check for scripts
XE보다 더 엄격하게 되어 버린 스크립트 입력 체크 기준을 다소 완화하여
<script language="php"> 등 PHP로 해석될 여지가 있는 것만 필터링함

cf. https://xetown.com/qna/1090769
2018-10-13 16:13:03 +09:00
Kijin Sung
3d8a9b7621 Produce relative URLs when appropriate 2018-10-11 09:07:38 +09:00
Kijin Sung
3484b2bb48 Fix 'security violation' error when no file is uploaded 2018-10-10 18:16:57 +09:00
Kijin Sung
c3f1e24b02 Ensure more consistent operation of security checks
- 수상한 파일이 업로드되었을 때 isSuccessInit = false로 지정
- isSuccessInit = false인 경우 무조건 에러메시지 출력 (xpressengine/xe-core#2304)
- 보안정책 관련 에러메시지는 msg_security_violation으로 통일
2018-10-10 16:27:23 +09:00
Kijin Sung
c54fa8dab1 Use escape more consistently
여기저기 htmlspecialchars가 들어 있는 것을 escape로 통일
2018-10-10 15:07:51 +09:00
Kijin Sung
19331e6746 Additional XSS checks #1088 2018-09-18 13:27:55 +09:00
Kijin Sung
60d390f52e Initial mitigations for #1088 #1089 2018-09-17 00:48:47 +09:00
Kijin Sung
a49f2f5f06 Change Context::isAlwaysSSL() to config('session.use_ssl_cookies')
- Main session cookie is httpOnly if use_ssl is true
- SSO cookie is always httpOnly
2018-08-06 01:23:22 +09:00
Kijin Sung
2c9bb88a14 Merge branch 'develop' into pr/1051 2018-08-06 01:08:51 +09:00
Kijin Sung
8db2ac16c7 Revert "basic files의 로드를 막을 수 있도록 Context::unloadBasicFiles() 추가"
This reverts commit 35b73eec0b.
2018-08-04 20:56:41 +09:00
Kijin Sung
867d6930cf Revert "35b73eec0b 보완"
This reverts commit 30e0a5c583.
2018-08-04 20:56:34 +09:00
Kijin Sung
f12cf74dda Revert "다른 프레임워크와 css 충돌을 피하기 위해 rhymix.less의 class/id 이름에 prefix 처리"
This reverts commit b1cb1f3f34.
2018-08-04 20:56:24 +09:00
conory
b1cb1f3f34 다른 프레임워크와 css 충돌을 피하기 위해 rhymix.less의 class/id 이름에 prefix 처리
변경전의 xe.less 파일도 rhymix.less와 함께 load 하여 호환정 유지

CSS 충돌 예)
bootstrap의 .btn
사용 예)
bootstrap 사용시엔 {Context::unloadBasicFiles('xe')}으로 unload 시키면 문제없음
2018-08-03 19:45:30 +09:00
conory
30e0a5c583 35b73eec0b 보완
파일이름으로 unload 할 수 없도록 변경 (호환성 파괴 위험성이 크므로)
2018-08-03 12:32:42 +09:00
Min-Soo Kim
25d2e4892a Revert "Example of the cookie option"
This reverts commit 93a35c251b.
2018-08-02 00:35:52 +09:00
Min-Soo Kim
93a35c251b Example of the cookie option 2018-08-02 00:35:27 +09:00
Min-Soo Kim
30fd0c428c Improve cookie security; Secure flag
SSL 항상 사용 옵션인 경우 쿠키도 이에 맞추어 SSL 인 경우에만 사용되도록 secure flag 를 추가합니다.
선택적 SSL 인 경우 SSL 이 적용되지 않은 구간에서도 쿠키를 읽을 수 있어야 하므로, 적용하지 않습니다.

이 PR 로 변경되는 내용

- Context 클래스에 checkSslEnforce 메소드 추가
- SSL 항상 사용 옵션일 경우, 가능한 secure 플래그를 달아서 쿠기 굽기
- SSO 쿠키의 경우 javascript 접근이 필요 없을 것으로 예상 ( https://github.com/rhymix/rhymix/pull/1034 ) 되어서 `httpOnly` 플래그도 추가.

안드로이드 웹뷰의 경우 StackOverFlow 의 Reading secure cookies in android WebView 라는 글을 참고하면, 읽어오는 것이 가능하다고 합니다. 주소에 프로토콜을 적지 않을 경우 secure flag 가 달린 쿠키는 정상적으로 읽어오지 않는 듯 하니 안드로이드 웹뷰를 사용하시는 분들은 대응이 필요할 것으로 보입니다.

https: //github.com/rhymix/rhymix/pull/1034 를 실수로 merge 하여서 다시 올립니다.
Co-Authored-By: Kijin Sung <kijin@kijinsung.com>
2018-07-29 12:15:24 +09:00
Min-Soo Kim
b62a1322c9 Revert "Merge branch 'develop' into develop"
This reverts commit ec54bbd415, reversing
changes made to 9b12e0a71c.
2018-07-29 11:54:14 +09:00
Min-Soo Kim
ec54bbd415
Merge branch 'develop' into develop 2018-07-29 11:49:27 +09:00
conory
35b73eec0b basic files의 로드를 막을 수 있도록 Context::unloadBasicFiles() 추가
예) Context::unloadBasicFiles('admin' , 'rhymix.less', ...);
2018-07-05 16:45:55 +09:00
Min-Soo Kim
f8edfacde2 Refine secure cookie flag
_use_ssl 대신 site_module_info 를 직접 참조하도록 수정.
함수 이름을 조금 더 자연스럽게 수정.
2018-04-28 11:25:15 +09:00
Min-Soo Kim
da95eed96e Fix typo; Context class
오타 수정. 문장 끝 세미콜론 추가
2018-04-24 20:20:50 +09:00
Min-Soo Kim
c1c9a94623 Improve cookie security; Secure flag
SSL 항상 사용 옵션인 경우 쿠키도 이에 맞추어 SSL 인 경우에만 사용되도록 `secure` flag 를 추가합니다.
선택적 SSL 인 경우 SSL 이 적용되지 않은 구간에서도 쿠키를 읽을 수 있어야 하므로, 적용하지 않습니다.
2018-04-24 19:30:38 +09:00
conory
5ebbbf5b36 파라미터 이름이 *srl일 경우 발생되는 호환 문제 수정
mid의 레이아웃(layout_srl) 설정을 '사이트 기본 레이아웃' (음수값 -1) 으로 할 수 없는 문제 수정
2018-04-23 01:05:28 +09:00
Kijin Sung
591e9cb270 Revert "Improve cookie secure setting values"
This reverts commit 73da2af393.
2018-04-23 00:43:24 +09:00
Kijin Sung
cfca05c897 Revert "Fix httpOnly flag by mistake.... (#1032)"
This reverts commit 0347bb7053.
2018-04-23 00:42:12 +09:00
Min-Soo Kim
0347bb7053
Fix httpOnly flag by mistake.... (#1032)
73da2af393 fix.
2018-04-23 00:17:26 +09:00