암호없는 로그인 기능을 안전하게 구현하려면 어떻게해야합니까?


10

방금 새 플러그인을 게시했습니다 : 더 이상 비밀번호 없음

플랫폼에 로그인하는 것이 중요한 문제이므로 보안 허점이있을 수있는 것을 공개하고 싶지 않기 때문에 현재 베타 태그가 붙어 있습니다. 여기 내 쿼리가 있습니다.

안전합니까?

보안을 위해 다음을 수행했습니다.

  1. 사용자 이름 / 암호는 앞뒤로 전달되지 않으며 고유 한 해시 만 전달됩니다.
  2. 해시가 사용되면 데이터베이스에서 해시가 제거되고 사용되지 않은 오래된 해시는 데이터베이스가 해킹되지 않는 한 될 수 없지만 더 큰 문제가 있습니다.
  3. XSS 공격을 방지하기 위해 해시의 모든 데이터베이스 쿼리가 이스케이프되었습니다.
  4. nonce가 아약스 호출에 추가되었습니다.
  5. CSRF 공격을 방지하기 위해 모바일 엔드에 nonce 및 확인이 추가되었습니다.

여기에 어떻게 작동하는지에 대한 완전한 설명이 있습니다 .

다음 버전은 iOS를 통해 작동하기 때문에 트위터를 통해 oauth를 구현하기를 희망합니다 ...

미리 입력 해 주셔서 감사합니다.

편집 : 추가 된 레이어로 sessionID 검사를 추가하여 QR 코드 로그인을 시작한 브라우저와 동일한 브라우저 로그인인지 확인하기로 결정했습니다.

답변:


5

(나는 다른 로그인 체계에 대한 빨판입니다)

DB 이스케이프와 관련된 몇 가지 핵심 사항 :

  • mysql_real_escape_string()직접 사용 합니다. 선호하는 방법은 $wpdb->prepare()또는을 사용하는 것입니다 esc_sql().

  • 업데이트 쿼리는 가장 잘 처리됩니다. $wpdb->update()


플러그인을 포함하도록 업데이트했습니다. 팁 고마워.
jackreichert

5

나는 그것이 좋은 생각이라고 생각하지만 항상 가장 큰 약점은 인적 요소입니다.이 경우 전화 자체가 분실되거나 도난 당하거나 가로 챌 것입니다. SMS 확인 코드 (예 : gmail 등)와 같은 2 계층 인증 추가에 대해 생각해 보셨습니까? 또는 더 쉬운 대안은 쿠키 + 비밀 단어입니다.

또한 정보 페이지에서 어떤 알고리즘이 QR 코드를 생성하는지 언급 할 수 있습니까?


플러그인은 휴대 전화에 로그인 한 상태에서 작동합니다. 전화를 잃을 위험은 PC를 wp 사이트에 로그인 한 상태로 유지하는 것과 거의 같습니다. Google 차트 API를 사용하여 QR 코드를 생성하고 있습니다.
jackreichert

3
전화가 PC보다 훨씬 많이 도난 당하거나 분실되어 PC에서 사용자 이름 / 비밀번호를 알아야하기 때문에 사용자를 방해하지 않는 다른 레이어를 추가하는 것이 좋습니다.
Wyck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.