나는 SO와 다른 사이트가 사용자 테이블의 자동 증가 기본 키를 공개적으로 볼 수있는 사용자 ID로 사용한다는 것을 알아 냈습니다. (적어도 이것이 그들이하는 일이라고 생각합니다.) SO의 경우, 사용자 ID를 알고 있거나 추측 할 수 있으면 사용자의 프로파일을 볼 수 있습니다.auto_incremented 사용자 ID를 표시 할 때 고려해야 할 사항은 무엇입니까?
유사한 스타일의 사용자 ID 생성을 구현하기 전에 고려해야 할 사항은 무엇입니까? 나는 "친구"라는 개념을 사용하는 비상업적 인 앱을 개발하고 있는데, 사용자간에 다양한 권한을 할당하고 있지만 모든 사용자의 기본 프로필을 app.com/users/userid
과 같은 간단한 URL에서 볼 수 있기를 바랍니다. 더 자세한 프로필 정보는 해당 사용자가 확인한 해당 사용자의 "친구"만 액세스 할 수 있습니다.
내 질문에 짐작할 수 있겠지만 사용자 ID의 "추측 가능성"은 이와 같은 시스템의 고유 보안에 대해 무엇을 나타 냅니까? 아니면 개별 기능이 실제로 구현되는 방식입니까? 내가 이것을 현명하지 않게 생각할지도 모르는 것이 있습니까? 이 사용자 ID로 절대 수행하지 않아야하는 것은 무엇입니까?
주의 사항
: 나는 "경쟁자"알고 또는 내가 가장 최근의 사용자의 수 또는 사용자 사이의 변화의 속도에 따라 얼마나 많은 사용자 추측에 대한 관심이 없습니다.
나는 모든 사용자에게 auto-inc id와 32 char random hash를 둘 다 사용하는데, 해쉬는 id를 추측하지 못하도록 보호합니다. –
@ 대곤에 동의합니다. 키를 사용하면 테이블을 서로 연결하고 공개적으로 공유 할 수있는 고유 한 'ID'를 만들 수 있으며 개별 레코드를 식별하는 데 계속 사용할 수 있습니다. 이 ID는 변경 될 수 있지만 키는 변경되지 않아야합니다. –
이전에 물어 보았지만, 사이트를 검색해보고 통찰력있는 이전 토론을 찾아보십시오. [웹 응용 프로그램에서 사용자의 실제, 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