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
Kijin Sung
b43c653186
Add options to control session keys and SSL-only attribute
2017-02-14 13:37:30 +09:00
Kijin Sung
dea757cfb7
Do not refresh session keys over POST
2017-02-13 17:49:27 +09:00
Kijin Sung
a6fee16b68
Extend detection of buggy user agents that cannot handle session keys
2017-02-13 17:28:04 +09:00
Kijin Sung
9c96dc04bc
Remove debugging code
2017-02-13 16:54:25 +09:00
Kijin Sung
aeb42891b0
Do not check security keys if session was started on Android webview
2017-02-13 16:53:30 +09:00
Kijin Sung
ba925150a3
Quash www subdomain to prevent duplicate sessions
2017-02-13 13:55:47 +09:00
Kijin Sung
4a4612938a
Show warning when a session is discarded due to invalid keys
2017-02-12 23:12:53 +09:00
Kijin Sung
1a0e49dcfb
Change method for storing and caching session validity information
2017-02-12 23:00:53 +09:00
Kijin Sung
9884bbb3b8
Fix inconsistent whitespace
2017-02-11 21:55:01 +09:00
Kijin Sung
31623842ba
Fix logout bug in admin module
2017-02-11 21:41:21 +09:00