가입, 비번변경, 탈퇴 룰셋에 적용되는 비번길이 조건을 일관성있게 고침#1733
Merged
1 commit merged intoAug 30, 2016
Merged
Conversation
ghost
pushed a commit
that referenced
this pull request
Aug 2, 2016
- SSO 처리시 돌려보낼 주소를 검증하지 않는 문제는 #1732 에서 패치되었으나, 실제 DB에 저장된 domain 포맷과 검증을 시도하는 domain 포맷이 달라서 SSO 기능이 전혀 작동하지 않는 문제가 있었음. (#1733 패치도 잘못됨) - 돌려받은 세션 식별자는 여전히 전혀 검증하지 않아서, 공격자가 특별히 만든 주소를 사용자가 방문할 경우 세션 식별자가 고정될 위험이 남아 있었음. - 구버전 업로더 호환성, SSO 기능 자체의 특성상 로그인시 세션 식별자 변경은 곤란하다고 판단됨. 따라서 세션 고정의 위험이 더 큼. - HMAC을 사용한 전자서명으로 돌려보낼 주소와 돌려받은 세션 식별자를 모두 검증하도록 함으로써 위의 문제를 모두 해결함. - secret_key를 생성하여 db.config.php 파일에 저장하도록 함. 이 정보를 모르면 전자서명을 위조할 수 없음.
This pull request was closed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
회원 비밀번호의 최대 길이 기준을 일관성있게 고쳤습니다.
현재 가입시에는 4
20자, 탈퇴시에는 120자, 비번 변경시에는 기존비번은 150자, 새 비번은 420자로 되어 있습니다. 비번 변경시에는 다른 CMS에서 데이터를 옮겨온 경우까지 고려하여 최소와 최대 모두 여유를 준 것 같은데, 탈퇴시에는 최소 길이만 고려했네요.게다가
MemberAdminController클래스의_createSignupRuleset()메소드에서는 별도로 4~20자 제한을 하드코딩해 두어서, 실제 가입시에는 룰셋에 표기된 제한은 무시되고 이것으로 덮어씌워집니다. (XE로 만들어진 사이트에 랜덤생성한 32자 비번으로 가입하려는데 자꾸만 에러가 나서 원인을 찾다가 이 현상을 발견했습니다. 요즘 해외에서 유행하는 correct horse battery staple 방식의 비번은 20자를 넘는 것이 보통입니다.)이 PR에서는 모든 비번길이 제한을 4~60자로 변경하고, 탈퇴 및 비번변경시의 기존 비번은 4자 미만도 허용하도록 했습니다. (실제 가입시 비번의 최소 길이 및 복잡도는 관리자 화면에서 별도 설정할 수 있지요.) 적용 후 회원가입 설정 페이지에서 "등록"을 한 번 클릭해 줘야 룰셋 캐시가 업데이트됩니다.
사실 모든 비번은 해싱하여 저장되므로 DB의 필드 길이에 구애받을 필요가 없지만, 비번이 너무 길면 해싱할 때 서버 부하가 지나치게 높아질 수도 있으므로 일단 이용에 큰 지장이 없는 60자까지만 허용해 보았습니다.