2014-03-06 2 views
1

사용자가 암호를 변경할 수있는 양식이 있으며 SQL 데이터베이스에 저장됩니다. 폼 제출시, 페이지는 POST를 통해 자신에게 제출됩니다. 내 질문은 클라이언트 쪽 (자바 스크립트) 또는 서버 쪽 (PHP) 또는 둘 다에서 암호 필드를 암호화하는 것이 가장 좋습니까?변수를 암호화하는 것이 가장 좋은시기는 언제입니까?

+1

데이터가 https를 사용하여 전송 된 경우 서버 측 암호화가 충분합니다. –

+1

해시를 암호화하지 않고 SERVERSIDE를 의미하며 SSL을 통해 게시합니다. –

답변

1

양식 제출은 SSL을 통해 이루어져야합니다. 그렇게하면 SSL이 전송 중에 클라이언트를 보호하므로 클라이언트에서 암호화 할 필요가 없습니다.

서버에서 암호 저장 방법에 대한 일반 보안 정책을 개발해야합니다. 저장소를 저장하는 좋은 방법은 보안 해시를 저장하고 실제 암호를 저장하지 않는 것입니다. 암호를 검사 할 때 SSL에서 서버로 전송 된 다음 서버에서 해시되고 DB에 저장된 보안 해시와 비교됩니다. 일치하는 경우 암호 확인이 유효한지 확인합니다. 즉, DB가 손상 되더라도 실제 암호는 도용되지 않습니다.

실제 암호를 데이터베이스에 저장하기 전에 암호화를 사용할 수 있지만 이렇게하면 DB에 침입 한 해커가 암호를 해독 할 수 없도록 암호화 방법/키를 안전하게 유지해야합니다. 이 작업은 올바르게 수행되면 "안전"할 수 있지만 해시를 저장하고 실제 암호를 저장하는 것보다 더 많은 잠재적 인 취약성이 있으며 DB 및 암호화 방법/키에 액세스 할 수있는 직원이 내부에서 손상 될 수도 있습니다 누가 암호를 훔칠 수 있습니다.

+0

나에게 불만을 표시해 주셔서 감사합니다. 나는 보안에 들어 읽기 시작했고 눈이 하하를 만나는 것보다 훨씬 많습니다! –

관련 문제