제목 | encrypt class를 이용한 암호화 결과에 대한 질문입니다. | ||
---|---|---|---|
글쓴이 | SMINT | 작성시각 | 2012/02/08 10:22:54 |
|
|||
안녕하세요 :) 현재 비밀번호 분실시 이름, 생년, 이메일, 아이디 일치를 확인한 후 이메일에 비밀번호 변경 페이지의 URL를 보내주려고 하는데 암호화키를 $this->encrypt->encode()를 이용해서 생성하려고 합니다. 암호화키에는 아이디+이메일+random_string(20글자, 이 랜덤스트링이 DB에 들어가있습니다.)가 들어가있고, $this->encrypt->decode()를한 결과에서 나오는 아이디, 이메일, random_string의 매칭이 제대로 되어 있는가를 확인합니다. 즉 user/forget_pw/code/암호화된키 의 형태의 URL로 접근하면 해당 계정의 비밀번호 변경 페이지를 보여주는 것이죠. ^^;; 이해가 잘 되셨을런지... ㅠㅠ 그런데 문제는, $this->encrypt->encode()로 만들어진 string에 백슬래시(/) 등이 들어가 있다는 것입니다. 이 때문에 urlencode, urlencode를 두 번 사용하는 방법 등을 하려고 했습니다 (참고 : http://stackoverflow.com/questions/311801/url-encoded-forward-slashes-breaking-my-codeigniter-app) 하지만 안되는군요... 최대한 아파치의 AllowEncodedSlashes On 설정을 건드리지 않고 하고싶은데, 방법 없을까요? 백슬래시를 언더스코어(_)로 치환한 url을 보내주는 것도 생각을 해봤는데, $this->encrypt->encode() 로 만들어지는 스트링에 존재할 수 있는 문자의 종류를 몰라서 함부로 이렇게 할 수도 없고... 혹시 이 문제를 해결할 수 있는 방법이나 다른 방법으로 이메일 변경 페이지를 보낼 수 있는 방법 있을까요? 아니면 random_string(20글자) 자체를 보내는 것은 보안상 괜찮을까나요? |
|||
다음글 | $this->email->send()를 비동... (5) | ||
이전글 | 워터마크 질문입니다. (2) | ||
변종원(웅파)
/
2012/02/08 10:54:48 /
추천
0
|
SMINT
/
2012/02/08 11:06:48 /
추천
0
웅파님// 그렇군요...
함수 올려주신다니 정말 감사합니다! |
변종원(웅파)
/
2012/02/08 13:15:32 /
추천
0
주소 생성
$rpath = str_replace("index.php/", "", $_SERVER['PHP_SELF']); define('RPATH_ENCODE', strtr(base64_encode(addslashes(gzcompress(serialize($rpath), 9))), '+/=', '-_.')); 디코딩후 주소 리다이렉트 redirect(unserialize(gzuncompress(stripslashes(base64_decode(strtr(RPATH_ENCODE, '-_.', '+/='))))),'refresh'); |
SMINT
/
2012/02/08 13:17:05 /
추천
0
감사합니다 웅파님!! 잘 쓰겠습니다 :)
|
외부라 사무실 들어가서 제가 쓰는 인코더, 디코더 함수 올려드릴께요.
어쩔수없이 치환하셔야합니다.