0

크롬 확장 기능을 구축 중이며 기능 중 하나는 내 서버에 메시지를 저장하는 것입니다. 오직 사용자가 그것을 할 수 있다는 것을 알고 있습니다.크롬 확장과 서버 간의 보안 통신

내 문제는 내가하고있는 방식이 안전하지 않다는 것입니다. 내 서버에 사용자 이름과 암호화 된 암호를 저장하는 데이터베이스가 있습니다.

내 서버로 메시지를 보내려면 매번 자신의 암호를 작성해야하며 확장 프로그램은이를 암기하지 않습니다. 내 서버에 접속하기 위해 XMLHttpRequest를 사용한다면 두 가지 선택이있다.

myServerDomain + '?message=' + myMessage + '&user=' + myUserName + '&password=' + myPassword 

을 그리고 그것은 좋은 하나입니다 있는지 확인하는 내 서버에 암호를 암호화 : 나는 보낼 수 있습니다.

아니면 내가 보낼 수 있습니다 저장된 하나와 일치 myPasswordEncrypted 경우

myServerDomain + '?message=' + myMessage + '&user=' + myUserName + '&password=' + myPasswordEncrypted 

그리고 직접 내 서버에 확인.

두 가지 방법으로, 사용자의 컴퓨터에 액세스하고 Google 크롬 창을 확인한 다음 콘솔로 이동하여 myPasswordEncrypted 또는 myPassword를 가져온 다음 내 자신의 수정 된 요청을 보내는 네트워크 요청 만 확인하면됩니다.

어떻게 보안 할 수 있습니까?

+0

암호를 암호화하지 않고 소금으로 해시하고 반복하여 100ms의 지속 시간을 얻으십시오. password_hash, PBKDF2, Bcrypt 및 유사한 기능과 같은 기능을 사용하십시오. OWASP (공개 웹 응용 프로그램 보안 프로젝트) [암호 저장 치트 시트] (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Leverage_an_adaptive_one-way_function)를 참조하십시오. – zaph

답변

1

비밀번호가 암호화되지 않은 상태에서 서버로 전송되는 경우 잘못 처리합니다. 가장 먼저해야 할 일은 비밀번호가 HTTPS를 통해 전송되는지 확인하는 것입니다. 그런 다음 서버에서 해시 할 수 있습니다. 클라이언트를 해싱하는 것은 무의미하며, 우습게도 쉽게 피할 수있는 방법입니다. See here for more details

관련 문제