Commit graph

389 commits

Author SHA1 Message Date
Kijin Sung
b284d69760 Try raw output for Android browser, Whale, webview 2019-07-31 16:08:26 +09:00
Kijin Sung
f33c8d9fbe Fix #1180 download filename issue in Android webview and Naver App 2019-07-30 20:43:27 +09:00
Kijin Sung
d873196aa8 Improve validation and formatting for 0303 and 0505 phone numbers 2019-05-13 15:34:09 +09:00
Kijin Sung
70108f858d XEVE-19-001, XEVE-19-003, XEVE-19-006
xpressengine/xe-core@18ec8078eb
2019-05-04 17:36:41 +09:00
conory
c2221a25e6 캐시가 없는 상황에서 DB 연결 에러시 DB 에러 메세지 대신 php 치명적 에러가 나오는 문제 수정
(라이믹스 오류 화면 출력시에도 DB 연결이 사용되므로 Debug::displayErrorScreen() 함수를 거치면 치명적 에러가 발생되기에 Exception로 처리하지 않았음)
라이믹스가 설치되지 않은 상태에서는 "에러 로그로 확인하라는 메세지" 없이 에러가 바로 출력되도록 수정
2019-01-17 18:26:46 +09:00
Kijin Sung
6e0a51520d Don't encode Unicode when printing JSON error message 2018-12-20 11:55:04 +09:00
Kijin Sung
335d356c0c Don't print error in JSON if not an AJAX request
https://xetown.com/questions/1131537
2018-12-20 11:47:05 +09:00
Kijin Sung
ea5d955072 Use apcu_* functions for APC cache
PHP 7에서는 apcu 확장모듈이 apc의 기능을 제공합니다.
이 때 apcu_* 함수는 존재하지만, apc_* 함수가 존재한다는 보장은 없습니다.
(리눅스 배포판에 따라서는 apcu-bc 패키지를 추가로 설치해야 합니다.)

라이믹스는 PHP 7만을 타겟으로 하므로, apcu_* 함수를 직접 사용하도록
변경하여 apc_* 함수가 존재하지 않는 경우 오류가 발생하지 않도록 합니다.
2018-12-19 16:52:36 +09:00
Kijin Sung
bf6dca0f7d 디버그에서 최후의 수단으로 text를 출력하는 경우에도 상황에 맞는 인코딩 및 escape 처리 2018-12-18 14:36:48 +09:00
conory
ff79092019 디버깅 편의를 위해 오류 페이지 출력 도중 오류가 또 발생된다면 무시하고 그냥 text로 출력
https://xetown.com/questions/1123378
2018-12-15 01:13:37 +09:00
Kijin Sung
7b9fe8f7f2 Revert "Fix var_export() not working for stdClass in PHP < 7.3"
This reverts commit 3f7f802585.
2018-12-13 18:59:27 +09:00
Kijin Sung
3f7f802585 Fix var_export() not working for stdClass in PHP < 7.3 2018-12-13 15:22:11 +09:00
Kijin Sung
4b6737800f Throw exception if neither openssl nor mcrypt is available 2018-12-03 15:10:20 +09:00
Kijin Sung
f80ea85b6f Add file.folder_structure setting to simplify file storage hierarchy 2018-10-18 16:06:53 +09:00
Kijin Sung
e98cf03d95 Move upload file filter to Rhymix Framework and add proper unit tests for SVG-based attacks 2018-10-18 14:34:19 +09:00
Kijin Sung
af64ae79c1 Rename checkXEE() to checkXXE() 2018-10-18 14:21:08 +09:00
Kijin Sung
6a7b1e3fd2 Use hash_equals() function if it exists 2018-10-18 14:18:06 +09:00
Kijin Sung
ad96ae6bb6 Fix some obvious compatibility issues with new dependencies 2018-10-18 14:10:02 +09:00
Kijin Sung
1d35511e04 Enforce CSRF tokens if option is enabled 2018-10-10 18:20:48 +09:00
Kijin Sung
64bc9205ff Add option to apply rel="nofollow" to all user-submitted links
참고: xpressengine/xe-core#2278

정상적인 사이트들 사이의 상호 교류를 저해할 위험이 있으므로
옵션으로 제공하고 기본값은 OFF로 함.
2018-10-02 15:17:23 +09:00
Kijin Sung
b08472a380 Commit missing files 2018-09-06 15:35:28 +09:00
Kijin Sung
c1cbc5dbdb Add MustLogin exception and apply to communication module 2018-08-27 00:31:48 +09:00
Kijin Sung
fe4e336f2b Add 3 special exception classes for common situations 2018-08-27 00:21:21 +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
109203d12b Remove invalid characters from REQUEST_URI 2018-07-31 19:08:02 +09:00
Min-Soo Kim
d090f402cc Set session cookie as a httpOnly cookie.
PHP Session cookie 를 자바스크립트에서 직접 다루는 것은 코어에서 일어나지 않는 일이기도 하고, 바람직한 작업은 아닌 것 같아서 패치합니다.
2018-07-29 18:40:21 +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
Kijin Sung
d069cf1194 업로드 파일명 처리 관련 버그 수정
xpressengine/xe-core#2008
xpressengine/xe-core#2269
2018-07-20 19:14:36 +09:00
Kijin Sung
b6557622d2 Improve regex for robot detection
- User-Agent에 URL이 들어갈 때는 괄호에 넣거나 +를 붙이도록 되어 있음
- 워드프레스 핑백 공격도 로봇으로 취급
2018-06-14 14:18:27 +09:00
conory
9e2a09f108 웹 브라우저가 아닌 wget, curl, php를 봇으로 취급 2018-06-14 12:57:00 +09:00
conory
ce5a730505 네이버, 다음 등 일부 봇들을 인식하지 못하는 문제 수정 2018-06-14 12:00:30 +09:00
Kijin Sung
83fe72be18 Fix #1037 IDN in Javascript @misol 2018-05-30 21:26:05 +09:00
Kijin Sung
4533dacd4b Add Storage::getLock() for exclusive access to a named lock
여러 프로세스를 동시에 실행할 경우 1개만 작동하도록
lock을 관리하는 기능을 코어 프레임워크에서 제공하도록 한다.

두 개 이상의 프로세스에서 동일한 이름의 lock을 요청할 경우
먼저 요청한 프로세스는 true, 나머지 프로세스들은 false를 받게 된다.
lock을 갖고 있던 프로세스가 종료되면 다시 요청할 수 있다.

예를 들어 크론탭에서 1분마다 실행하는 CLI 스크립트가 있는데
간혹 1분 이상 소요된다면 2개가 동시에 실행될 수도 있다.
이 때 lock을 받지 못한 쪽을 종료하면 동시 실행을 방지할 수 있다.
2018-05-30 21:04:30 +09:00
Kijin Sung
f278ae5e75 Add methods to enable/disable Debug log collection
크론탭 등에서 다수의 쿼리를 실행하거나 각종 일괄처리 작업을 할 때
디버그 기록 때문에 메모리 사용량이 무한정 증가하는 문제 방지
2018-05-30 20:48:04 +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
c1c9a94623 Improve cookie security; Secure flag
SSL 항상 사용 옵션인 경우 쿠키도 이에 맞추어 SSL 인 경우에만 사용되도록 `secure` flag 를 추가합니다.
선택적 SSL 인 경우 SSL 이 적용되지 않은 구간에서도 쿠키를 읽을 수 있어야 하므로, 적용하지 않습니다.
2018-04-24 19:30:38 +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
Min-Soo Kim
73da2af393 Improve cookie secure setting values
HTTPS 를 사용하는 상황에 대한 판단을 할 수 있는 상황에서 쿠키의 secure flag 를 달아준다.
2018-04-22 23:58:13 +09:00
포피플
2306456154
Change Woorimail SSL Port
Some web hosting doesn't open a port 20080. So Woorimail change SSL port from 20080 to 443(ssl).
2018-03-09 14:13:51 +09:00
Kijin Sung
2dd549f076 Add methods to clear debug entries (for long-running scripts) 2018-01-16 15:03:36 +09:00
Kijin Sung
49be8be6c0 Fix error me_007 when sending email to multiple recipients via Woorimail 2018-01-04 14:20:57 +09:00
Kijin Sung
e3a2c1a6aa Guard more count() calls in common framework classes 2017-12-09 02:49:01 +09:00
Kijin Sung
2158c4fa3b Remove unnecessary count() calls in MediaFilter 2017-12-09 02:32:40 +09:00
Kijin Sung
0023a9cc1a Cache opcache status to reduce function_exists() calls 2017-12-09 01:40:04 +09:00
Kijin Sung
0c62ff7561 Prevent exception on servers with flaky random_bytes() implementation
카페24 PHP 7.0 웹호스팅 상품에서 random_bytes() 함수가 작동하지 않음
2017-12-03 10:06:33 +09:00