Commit graph

1135 commits

Author SHA1 Message Date
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
Kijin Sung
d7beeb783c config파일 읽을 때 BOM문자 제거
xpressengine/xe-core#1604
2017-11-30 21:53:23 +09:00
Kijin Sung
b1a4d322c7 Update admin check function in Debug::displayErrorScreen() 2017-10-15 23:42:38 +09:00
Kijin Sung
1f9f449fb0 Stop treating .swf as directly downloadable file
플래시 첨부파일을 본문에 직접 삽입하는 방식에서 다운로드만 가능한 방식에서 변경
file, importer, integration_search 등 모든 모듈에 일관성있게 적용

xpressengine/xe-core#2149
2017-10-12 00:29:22 +09:00
Kijin Sung
1042479d5b Allow connection to Memcached and Redis via unix socket 2017-09-11 17:33:19 +09:00