Kijin Sung
0029d1a1ec
Rename all common/framework source files to be case-sensitive
2022-12-26 16:13:09 +09:00
Kijin Sung
426a971c6c
Remove $relax_key_checks because we are no longer using Flash uploader
2022-12-26 01:08:04 +09:00
Kijin Sung
2ca32e0062
Add Session::getLastLoginTime() method
2022-10-20 16:14:06 +09:00
Kijin Sung
e4e252c1b4
Add more detailed ERR_* error codes to common error messages
...
가장 많이 발생하는 '잘못된 요청입니다', '보안정책상 허용되지 않습니다'
오류에 좀더 구체적인 ERR_* 코드를 추가하여 디버깅 편의 개선
2022-10-13 00:23:20 +09:00
Kijin Sung
0cc1246898
Move login status calculation to its own method and add API in member module
2022-08-05 10:21:14 +09:00
Kijin Sung
9372cdc4bb
Add rx_login_status cookie for checking login status in mobile apps
...
- 회원정보 노출 없이 로그인 여부 및 서로 다른 회원을 구분할 수 있는 쿠키
- 인증이나 그 밖에 보안상 민감한 작업에는 사용하지 않음
- 모바일 앱에서 웹뷰의 로그인 상태가 앱이 기억하는 로그인 상태와 달라진 경우를 신속하게 파악할 수 있음
- 기타 API 클라이언트 등에서도 세션 상태 변화를 쉽게 감지할 수 있음
2022-07-21 16:29:36 +09:00
Kijin Sung
632a3fff71
Disable strict checking of CSRF token if the user is not logged in
...
로그인이 풀리면 세션이 초기화되면서 CSRF 토큰 정보가 사라져서
다른 탭에서 어떤 액션을 호출하더라도 무조건 CSRF 오류가 발생하는 문제 수정
현재 세션에서 토큰을 발행한 적 없는 경우 토큰 체크를 스킵하도록 함
2022-07-01 13:09:59 +09:00
Kijin Sung
70cfe24cdd
Use $this->user instead of $logged_info more consistently #1866
2022-02-04 01:19:30 +09:00
Kijin Sung
f4758b7570
Fix #1610 memory leak in initial debug status check
2021-02-10 00:27:04 +09:00
Kijin Sung
8e56fe5912
Fix warning in PHP 8.0 during unit tests
2021-01-28 23:04:27 +09:00
Kijin Sung
60465fb2db
Fix various warnings in PHP 8.0
2021-01-28 22:32:56 +09:00
Kijin Sung
8c161bc28d
Various fixes to improve PHP 8.0 compatibility
...
- XmlParser 클래스가 PHP 내장 클래스가 되어버려서 XeXmlParser로 변경
- 함수나 파라미터의 형태가 맞지 않아서 치명적인 오류 나는 곳 수정
- undefined 변수 및 배열 키 다수 수정 (치명적인 오류는 아님)
- 계속 수정중...
2020-10-31 00:25:26 +09:00
Kijin Sung
3e18f2d6ba
Add session_start() delay and all query time to debug data
2020-10-30 15:52:52 +09:00
Kijin Sung
4aba149425
Resend the session cookie periodically to prevent early logout
...
서버단에는 세션 쿠키가 살아 있는데 클라이언트단에서 먼저 만료되지 않도록
일정한 시간 간격으로 세션 쿠키를 재전송해 주도록 한다.
특정한 환경에서 로그인이 풀리는 빈도를 줄이는 데 도움이 될 수 있다.
2020-10-30 01:34:01 +09:00
Kijin Sung
786c9c9b8c
Replace some usages of getModel(), getController(), etc. in the Rhymix Framework
2020-05-18 21:51:36 +09:00
Kijin Sung
ae36419ee7
Remove temporary fix for session domain
...
2020년 3월 한때 develop 브랜치에서 세션 도메인이 잘못 지정되었던 문제를
우회하기 위해 삽입했던 임시 코드를 삭제 또는 주석처리함.
문제가 있던 당시에 develop 브랜치로 업데이트했던 일부 사이트 외에는
필요하지 않은 코드이므로, master 머지를 앞두고 제거함.
참고: #1264
2020-04-21 22:49:02 +09:00
Kijin Sung
04bb0493c7
Implement SameSite cookie policy
...
- 세션 쿠키, 세션 보안키 등에 SameSite 속성을 적용할 수 있는 기능 추가
(시스템 설정 -> 보안 설정)
- 일반적인 사이트는 Lax를 권장함, PG사 연동 오류 등의 경우 None 사용
- None 사용시 크롬 80부터는 SSL 전용 세션으로 지정해야 함
- Rhymix\Framework\Session에서 쿠키 관련 루틴들 정리
- PHP 7.3 이상, 7.2 이하 버전으로 나누어 처리
2020-04-21 22:39:10 +09:00
Kijin Sung
255352df62
Fix #942 SSO error when CSRF token checking is enabled
2020-04-07 23:43:14 +09:00
Kijin Sung
dc9c137243
Fix all functions relying on domain from Session::_getParams()
2020-04-05 14:33:39 +09:00
Kijin Sung
99bab256b3
Regenerate session cookie after removing conflict
2020-04-05 00:43:04 +09:00
Kijin Sung
d0df41d232
Clean conflicting cookies from current host if needed
2020-04-05 00:39:48 +09:00
Kijin Sung
f7c67b54fd
Set session domain to null by default
2020-04-04 23:13:09 +09:00
Kijin Sung
03160fe0ca
Remove leading dot from session domain consistently
2020-04-04 17:02:18 +09:00
Kijin Sung
95f0caafcc
Rename session.override_domains to session.conflict_domains
...
- 설정 이름을 바꾸어 기존에 설정된 것 무효화
- 도메인 없이 setcookie()하는 부분을 모두 찾아 도메인 지정
2020-03-30 23:02:14 +09:00
Kijin Sung
3ca551e5f2
Fix multidomain not working when domain is IDN
2020-03-26 22:12:33 +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
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
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
Kijin Sung
e3a2c1a6aa
Guard more count() calls in common framework classes
2017-12-09 02:49:01 +09:00
Kijin Sung
a3ef122b57
Merge branch 'develop' into pr/csrf-token
2017-03-13 16:35:24 +09:00
Kijin Sung
beee2165fb
Update session class to use getDefaultDomainInfo() for SSO
2017-03-13 11:35:37 +09:00
Kijin Sung
a0f2388842
Add Session::getGenericToken() for general-purpose token handling
2017-03-06 11:24:09 +09:00
Kijin Sung
5bd5044126
Improve referer checks in Session::checkSSO()
2017-03-04 22:15:46 +09:00
Kijin Sung
8cf3d7b520
Update SSO mechanism to use new domain system
2017-03-04 22:05:16 +09:00
Kijin Sung
cf01038ce6
Refresh member info when setSessionInfo() is called
2017-03-03 01:05:13 +09:00
Kijin Sung
fbe47e0610
Remove temporary list of override domains in Session class
2017-02-18 22:57:39 +09:00
Kijin Sung
5c8a41a655
Fix PHP warning
2017-02-17 21:38:03 +09:00
Kijin Sung
2582ef2100
More thoroughly delete conflicting cookies
2017-02-17 21:09:57 +09:00
Kijin Sung
64f0d5cb45
Remove Android Chrome from buggy user-agent list
2017-02-17 20:24:13 +09:00
Kijin Sung
51acad706e
Remove unnecessary regex replacement
2017-02-17 20:15:56 +09:00
Kijin Sung
50410ec482
Delete conflicting wildcard cookies from subdomain
2017-02-17 19:44:01 +09:00
Kijin Sung
780034d4ee
Do not explicitly set the domain for session cookies
2017-02-17 19:33:05 +09:00
Kijin Sung
cbae2c374e
Use meta refresh instead of 302 redirect on new session
...
Attempting to fix missing session cookie in some versions of Android webview and Chrome.
This may or may not be of any use, but why not try?
See https://bugs.chromium.org/p/chromium/issues/detail?id=150066
2017-02-16 11:53:27 +09:00