웹 사이트의 활성화 시스템을 만들어야합니다. 사용자가 등록하고 전자 메일을받은 다음 쿼리 문자열에서 비밀 키가있는 링크를 클릭하고 내 끝에있는 스크립트가이를 디코딩합니다.웹 사이트의 활성화 링크를 생성하려면 어떤 방법을 사용합니까?
내 질문은 프로그래밍 자체가 아니라 오히려 링크를 생성하는 좋은 방법은 무엇입니까? 해싱은 생각 이었지만 한 가지 방법이었습니다. 내가 뭔가를 암호화해야합니까? 이 똑같은 일을 맡은 사람은 통찰력이 있습니까?
모두 것을 그것을 할 수있는 방법이 있나요 : 는 데이터베이스의 모든 비밀 코드를 저장하지 않습니다가, 쿼리 문자열
사용자는 기본 키가있는 테이블에에 명백한 사용자 정보를 넣어하지 않습니다 이드와 다른 정보. 미친 듯이 안전 할 필요는 없지만 쉽게 부서지지 않아야합니다. 나는 PHP로하고있다. 비슷한 질문을 찾을 수 없기 때문에 내가 간과했다면 링크를 고맙게 생각할 것입니다.
여기를 확인하십시오 http://stackoverflow.com/questions/876139/how-to-generate-a-secure-activation-string-in-php – pregmatch
가장 안전한 방법은 전 세계적으로 유일한 식별자 (GUID, UUID, 별칭이 무엇이든간에. PHP에는 'uniqid()'라는 함수가 있는데, 이와 달리 MySQL에는 UUID()라는 함수가 있습니다. 함수를 사용하여'UUID()'를 만들고 레코드에 할당 한 다음 활성화 식별자로 보내기 위해 사용하는 반면, 속도면에서는 PHP의'uniqid()'를 사용하는 것이 훨씬 더 효율적입니다 그리고 인덱싱이 더 효율적 일 것입니다. –
업데이트 : 데이터베이스에 아무 것도 저장하지 말라는 것입니다. ID를 어떻게 든 암호화 할 수는 있지만 암호화 방법이 손상 될 위험이 있습니다 .AES 알고리즘과 올바른 키 중 하나를 선택하십시오. mi 충분하셔야합니다. 그렇게하면 추가 데이터 (활성화 링크)를 저장하지 않지만 암호화 된 데이터를 안전하게 전송하는 방법에 문제가 있습니다. 'base64_encode'를 사용하여 ID를 암호화 할 수 있습니다. 또 다른 아이디어는 추가 열 (또는 레코드에 테이블 매핑)을 사용하고 전자 메일을 통해 보내는 글로벌 고유 식별자를 사용하는 것입니다. –