728x90
반응형
문제점 및 증상
- 비밀번호 사용을 위하여 내장된 password() 함수를 이용하다가, 보안 강화를 위하여 sha2-256을 적용
- 실제 비밀번호를 아무런 암호화 없이 HTTP를 통하여 주고 받기 보다는 클라이언트에서 비밀번호 자체를 sha2-256을 적용한 해쉬값을 전달하여 처리하는 방식으로 개선하는 도중에 클라이언트에서 받은 해쉬값을 MariaDB의 해쉬값과 비교하는 과정에서 비밀번호가 일치하지 않는 문제 발생
- 사용자 테이블
원인 분석
- 사용자 비밀번호를 업데이트 하는 과정에서 다음과 같은 쿼리를 사용을
- 결과를 볼 때, 올바른 내용이 들어간 것 같았으나, MariaDB 연결 도구마다 BINARY 데이터의 표시 결과가 달랐음(HeidiSQL, dbForge Studio Express for MySQL)
- 그로 인하여 헷갈렸었는데, SHA2 함수의 결과가 실제로 BINARY 형태가 아니라, 문자열 형태여서 위와 같이 업데이트를 한 경우 문제가 됨
해결 방안
- 결과적으로 위 업데이트를 다음과 같이 변경하면, SHA2 함수의 호출 결과를 BINARY 형태로 저장하게 됨
참고자료
'DB > MySQL' 카테고리의 다른 글
MariaDB 서비스 포트 변경 (CentOS 7) (0) | 2019.07.16 |
---|---|
[MariaDB] NULL 허용 컬럼 사용시 고려할 점 (0) | 2018.11.08 |
[MariaDB] BIT 형 컬럼을 PHP에서 올바로 표시하기 (0) | 2016.09.06 |
[MariaDB] Commands out of sync 문제 (0) | 2016.09.04 |
MySQL 관리 (0) | 2014.04.17 |