본문 바로가기

지적자본

워드프레스 비밀번호 초기화 링크 오류 해결하기

by 디런치 2020. 2. 22.

워드프레스를 회원제로 운영하다보면 여러가지 매끄럽지 못한 기능 때문에 어려울 때가 여러번있다. 워드프레스는 보안등의 문제로 이유있는 코딩을 해놓을 때가 있지만, 이것이 불편함을 주거나 특정기능에 문제점으로 발생하는 경우가 있다.

 

 

이번에는 워드프레스 사용자가 비밀번호를 잃어버렸을 때 리셋하하는 기능에 대한 문제이다. 일반적으로 외국계정의 이메일 주소는 해당사항이 없지만, 네이버메일이나 한메일(다음메일)의 경우 비밀번호를 잃어버렸을 때 전송되는 이메일 재설정 링크주소가 문제가 있는 경우가 있다.

 

링크가 올바르지 않기 때문에  해당링크로 접속하면 "비밀번호 초기화 링크가 올바르지 않은 것 같습니다. 새 링크를 요청하십시오"라는 메시지가 뜬다. 이는 여러 워드프로세스 개발자들에 의해 언급되고 있는 사실이지만, 국내에는 특별한 솔루션을 주는 포스팅이 되지 않고 있어서 포스팅을 한다.

 

먼저 문제점을 보면, 비밀번호 초기화 링크시 이메일 주소를 기입하면 아래와 같이 비밀번호를 새로 설정할 수 있는 링크가 나온다.

 

 

위의 글은 다음한메일의 기준인데, 링크의 경우 파란색으로 글자가 변경된다. 자세히보면 링크에 포함되지 말아야할 우측끝의 ">"가 파란색으로 포함되어 있는 것을 볼 수 있다. 그러면 링크를 보내는 소스를 찾아서 해당부분을 삭제하면 간단히 해결되는 문제인데, 이 문제에 대해서 워드프레스 개발자들이 별다른 언급을 하지 않는다.

 

 

1. 비밀번호 재설정 링크 수정

 

 

그럼 소스를 찾아보자. 해당 링크를 보내는 소스는 wordpress(설치경로)/wp-login.php에서 아래 항목을 찾아서 변경한다.

 

$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login= . rawurlencode($user_login), 'login') . ">\r\n";
$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n";

내용을 보면 알겠지만 처음의 '<'. 과 끝 부분의 > 를 삭제하여 링크의 오류를 방지하는 것이다. 

 

 

2. 회원가입 후 비밀번호 설정 링크 수정

 

위이 경우는 비밀번호 재설정시 나타나는 문제를 해결하는 방법이고,

 

이와 유사하게 회원가입 후 비밀번호 설정하는 메일에도 유사한 링크 오류가 발생된다. 따라서 추가조치를 취해야 하는데

동일하게 wordpress(설치경로)/wp-includes 폴더에서 pluggable.php 파일을 찾아 아래와 같이 수정한다.

$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login= . rawurlencode($user_login), 'login') . ">\r\n\r\n";
$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n\r\n";

이렇게 처음의 '<'. 과 끝 부분의 > 를 삭제하면 링크 오류는 해결이 된다.

 

 

 

위와 같은 문제는 국내 메일 서비스에서 주로 발생하는 것으로

해외의 메일을 사용하면 문제가 발생하지 않는 것으로 보아 국내 메일 서버들의 워드프레스 대응이 늦는 것이라고

추측할 수 밖에 없다.

반응형


댓글