Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
세션 보안키 기능은 오래 전 제가 배포했던 "세션 쉴드" 애드온에서 가져온 것입니다. 대부분의 사이트가 플래시 업로더를 사용하고 SSL도 "선택적 사용"에 그치던 시절, 기본 세션 쿠키(PHPSESSID)의 열악한 보안성을 만회하기 위해 2개의 쿠키(rx_sesskey1, rx_sesskey2)를 추가로 사용하는 기능입니다.
당시에는 플래시 업로더 때문에 세션 쿠키에 httpOnly 속성을 사용할 수 없어서, 자바스크립트에서 세션을 쉽게 탈취할 수 있었습니다. 그래서 두 개의 세션 보안키에 httpOnly 속성을 추가하고, SSL을 사용할 수 있는 경우 2번 키에는 secure 속성도 추가하여, 기본 세션 쿠키보다 탈취하기 어렵도록 만들었습니다.
회원 정보 수정이나 관리자 화면 등 중요한 기능에 SSL을 사용하여 접근할 때, 기본 세션 쿠키만 전달하고 세션 보안키 2개를 전달하지 않으면, 탈취된 세션이라고 가정하고 강제로 로그아웃시키는 것이 이 기능의 핵심입니다. 3개의 쿠키는 사실상 서로 연동되어 있고 탈취의 난이도만 다르기 때문에, 정상적인 브라우저를 사용하는 정상적인 사용자라면 3개의 쿠키가 항상 한 세트로 움직인다는 점을 이용했습니다.
그러나 시대가 바뀌어 플래시 업로더는 사용하지 않게 되었습니다. 라이믹스에서는 꽤 오래 전부터 "SSL 전용 세션" 옵션을 선택하는 경우 httpOnly 속성도 조용히 추가해 주고 있었는데, 이 잠수함 패치 때문에 오류가 발생한다는 제보는 받지 못했습니다. 이제는 SSL 적용 여부와 관계없이 httpOnly 속성을 항상 넣는 것을 기본값으로 하겠습니다. 이것으로 rx_sesskey1은 더이상 존재 이유가 없습니다.
하나의 사이트 안에서 http 주소와 https 주소를 오가는 일도 드물어졌습니다. 라이믹스 2.0부터는 SSL을 아예 사용하지 않거나 항상 사용하거나, 2가지 옵션밖에 지원하지 않습니다. "선택적 사용" 시나리오를 위해 만들어진 rx_sesskey2도 더이상 필요하지 않습니다.