제목 | DB 암호화 저장(OLD_PASSWORD) | ||
---|---|---|---|
글쓴이 | 리퍼스 | 작성시각 | 2015/08/26 13:57:09 |
|
|||
안녕하세요. 이번 모임에 참여해서 새로운걸 알고 배웠습니다. 도움주셔서 감사합니다. 회사 업무게시판을 코드이그나이터로 재개발을하고 있는데요. 기존에 DB를 그대로 사용하려다 보니 잘잘한 문제들이 발생합니다. 회원의 비밀번호를 저장한는데요. 기본에 DB가 OLD_PASSWORD형식으로 저장되어 있습니다. 코드이그나이터에서 MD5의 경우 그대로 사용했었는데요. $this -> db -> where('user_pw', MD5($user_pw)) OLD_PASSWORD도 똑같이 하면 될꺼라 생각했는데 OLD_PASSWORD에서 정의되지않은 함수 오류가 나와 버리네요... $this -> db -> where('user_pw', OLD_PASSWORD($user_pw)) MySQL에서 직접 OLD_PASSWORD(' ')로 쿼리를 날리면 정상적인 값이 나오는데, 이걸 코드이그나이터에서 직접 쿼리를 날리면 문제없이 정상적인 값이 나오는건 알겠는데요. $SQL = "select idx, user_id, user_pw from member where user_id='$user_id' and user_pw=OLD_PASSWORD('$user_pw') limit 1"; $query = $this -> db -> query($SQL); 직접 쿼리를 날리는 방법말고 MD5처럼 OLD_PASSWORD를 처리할만한 방법이 어떤게 있을까요? |
|||
다음글 | config->constants 질문 (7) | ||
이전글 | 새로고침없이 {yield} 부분만 변경할 수 있을까요? (3) | ||
한대승(불의회상)
/
2015/08/26 14:17:12 /
추천
0
|
리퍼스
/
2015/08/26 15:49:43 /
추천
0
답변감사합니다. 문제가 될수 있는내용은 알고 있으나 많은 회원의 비밀번호를 일괄적으로 변경하는 방법이 있는지 모르겠으나, 그렇지 않다면 회원들이 일일히 비번을 변경요청을 드려야하는 문제가 있습니다. 회원들이 먼가 변경하는 과정을 너무 번거로워하여 부득이하게 old_password 암호화 방법을 그대로 사용할수밖에 없어 문의 드렸습니다. CI에서는 지원하는 부분이 없군요.. 다른방법을 연구해봐야겠습니다.
감사합니다. |
mysql의 old_password 나 password 함수를 사용하여 사용자 암호를 암호화 하는것은 비추천 입니다.
mysql의 보안 정책에 의해 해쉬 방법이 바뀔수 있는데 복호화 할 수 없는 암호화 방법이 바뀐다는건 큰 문제가 될 수 있습니다.
php나 CI에서 제공하는 암호화 모듈을 사용하여 암호화 하길 권장 합니다.