SSL 선택적 사용시 XEDITION 레이아웃의 로그인 팝업에 SSL이 적용되지 않는 문제 수정 #1780
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.
참고: https://www.xetown.com/lakepark/22982
XEDITION 레이아웃에는
login_info
위젯과는 별도로 로그인 팝업 위젯이 포함되어 있습니다. 그런데 SSL을 사용하지 않는 페이지에서 이 팝업을 사용하면 로그인 폼의 action 속성이 SSL을 사용하지 않는 주소로 생성됩니다. 그래서 아이디와 비밀번호가 암호화되지 않고 전송됩니다.한국의 현행법은 로그인 정보 전송시 SSL을 사용하도록 강제하고 있기 때문에, 많은 웹마스터들을 범법자로 만들 수 있는 심각한 문제라고 생각됩니다.
문제의 원인은
getUrl()
함수를 호출하면서act
procMemberLogin
을 지정하지 않았기 때문입니다. 이걸 지정해야 코어에서 SSL을 사용하도록 주소를 생성해 주거든요.일단 이 문제는
act
를 추가하는 것으로 간단히 해결됩니다. 그러나 이렇게 해 놓으면 한 가지 부작용이 발생하는데요... 로그인 후 반환되는success_return_url
주소가 상대경로이기 때문에 기존의 주소가 아닌 SSL 주소로 돌아오게 됩니다. 개인적으로는 당연히 그래야 한다고 생각합니다만, 외부이미지 등 여러 가지 문제 때문에 SSL을 선택적으로 사용하는 웹마스터들은 로그인 후에도 SSL을 사용하지 않는 주소로 돌아오기를 원하실 것 같습니다.안타깝게도 현재 XE 코어에는 "현재 페이지의 정확한 절대경로"를 반환하는 함수가 없습니다. 항상
mid
와act
를 조합하여 주소를 생성해야 하죠. 그래서getCurrentPageUrl
이라는 함수를 추가해 보았습니다. 현재 페이지의 절대경로에 어떠한 가공도 가하지 않고 그대로 반환하는 함수입니다. 이 함수를 사용하면 로그인 전의 주소로 정확하게 돌려보낼 수 있습니다.