2012-02-23 3 views
2

나는 SO와 다른 사이트가 사용자 테이블의 자동 증가 기본 키를 공개적으로 볼 수있는 사용자 ID로 사용한다는 것을 알아 냈습니다. (적어도 이것이 그들이하는 일이라고 생각합니다.) SO의 경우, 사용자 ID를 알고 있거나 추측 할 수 있으면 사용자의 프로파일을 볼 수 있습니다.auto_incremented 사용자 ID를 표시 할 때 고려해야 할 사항은 무엇입니까?

유사한 스타일의 사용자 ID 생성을 구현하기 전에 고려해야 할 사항은 무엇입니까? 나는 "친구"라는 개념을 사용하는 비상업적 인 앱을 개발하고 있는데, 사용자간에 다양한 권한을 할당하고 있지만 모든 사용자의 기본 프로필을 app.com/users/userid과 같은 간단한 URL에서 볼 수 있기를 바랍니다. 더 자세한 프로필 정보는 해당 사용자가 확인한 해당 사용자의 "친구"만 액세스 할 수 있습니다.

내 질문에 짐작할 수 있겠지만 사용자 ID의 "추측 가능성"은 이와 같은 시스템의 고유 보안에 대해 무엇을 나타 냅니까? 아니면 개별 기능이 실제로 구현되는 방식입니까? 내가 이것을 현명하지 않게 생각할지도 모르는 것이 있습니까? 이 사용자 ID로 절대 수행하지 않아야하는 것은 무엇입니까?

주의 사항

: 나는 "경쟁자"알고 또는 내가 가장 최근의 사용자의 수 또는 사용자 사이의 변화의 속도에 따라 얼마나 많은 사용자 추측에 대한 관심이 없습니다.

+1

나는 모든 사용자에게 auto-inc id와 32 char random hash를 둘 다 사용하는데, 해쉬는 id를 추측하지 못하도록 보호합니다. –

+0

@ 대곤에 동의합니다. 키를 사용하면 테이블을 서로 연결하고 공개적으로 공유 할 수있는 고유 한 'ID'를 만들 수 있으며 개별 레코드를 식별하는 데 계속 사용할 수 있습니다. 이 ID는 변경 될 수 있지만 키는 변경되지 않아야합니다. –

+0

이전에 물어 보았지만, 사이트를 검색해보고 통찰력있는 이전 토론을 찾아보십시오. [웹 응용 프로그램에서 사용자의 실제, auto_incremented 데이터베이스 ID와 대조적으로 "사용자 정의"사용자 ID 사용?] (http://stackoverflow.com/questions/3739833/using-a-custom-user-id-as-opposed- 사용자가 자동으로 증가 된 데이터베이스) 또는 [mysql 자동 증가로 사용자 ID로 안전하게 사용할 수 있습니까?] (http://stackoverflow.com/q/8078912/367456) – hakre

답변

1

전혀 문제가되지 않습니다. 사실, 나는 반대의 말을 거의 할 것입니다. 보안상의 URL에서 params를 가려 내야하는 경우, 잘못하고있는 것입니다. 보안은 코드에서 처리되어야합니다.

당신의 질문에, 당신은 이미 올바른 방법으로 보안을 생각하고있는 것처럼 보입니다. 따라서 URL의 기본 키로 잘되어야합니다.

정보를 저장하지 않는 primary_key (예 : auto_incremented id)가 변경되지 않으므로 좋습니다. URL에 사용자 이름과 같은 정보를 입력하는 경우 사용자 이름을 수정하지 못하도록하거나 결코 남을 수있는 깨진 링크에 대처할 수 없습니다 (사용자가 다른 사용자 사이트에있을 수도 있음을 기억하십시오)).

URL에 auto_incremented ID가있는 유일한 정보는 사용자가 이전인지 다른 사용자인지를 알 수 있다는 것입니다. 이것은 우려 할만한 일이 아니며 어쨌든 신뢰할 수 없습니다.

+1

로그인 ID를 다르게 지정하십시오. 낮은 숫자는 차갑기 때문에 모두 낮은 숫자를 원할 것입니다. :) –

+0

@ Marcus Adams 솔직히 말해서, 본질적으로 위험하지 않은 경우 사용자 ID로 사용하고 싶은 이유입니다. 감사! – itsmequinn

2

OWASP - Insecure Direct Object References

는 피사체의 꽤 좋은 치료를 제공합니다. 사실 웹 어플리케이션을 개발할 때 일반적으로 OWASP의 보안 지침을 권장합니다. 나는 사이트에서 발견 된 TOP 10 보안 위협에 대해 항상 내 웹 프로젝트를 평가합니다.

+0

와우, 훌륭한 자료입니다. 감사합니다. – itsmequinn

관련 문제