Django의 signing 모듈은 사용자 로그인이나 세션 없이도 안전한 구독 취소 링크를 제공합니다. URL에 사용자 ID를 직접 사용하는 안전하지 않은 방식은 대량 구독 취소에 취약합니다. 데이터베이스에 임의의 토큰을 저장하는 것은 일반적이지만 더 복잡한 해결책입니다. Django의 django.core.signing 모듈은 SECRET_KEY로 값(예: 사용자의 기본 키)을 서명함으로써 데이터베이스 저장 없이도 변조 방지 토큰을 제공합니다."salt"는 다른 기능 간의 토큰 충돌을 방지하는 데 중요하며, 한 목적(예: 공지)을 위한 토큰이 다른 목적(예: 포럼 알림)에 사용될 수 없도록 보장합니다. 서명된 토큰은 비밀이 아니며, 내부 데이터는 읽을 수 있지만 서명을 무효화하지 않고는 변경할 수 없습니다. 따라서 숨겨져야 하는 민감한 정보는 서명하지 마십시오.중요하게도, 메일 스캐너와 프리페처가 의도치 않게 사용자를 구독 취소하는 것을 방지하기 위해 구독 취소 작업은 GET 요청이 아닌 POST 요청에서 이루어져야 합니다. GET에서 확인 페이지를 표시하고, POST로 작업을 완료하는 것이 권장되는 흐름입니다.구독 취소 토큰은 오래된 링크를 두 번 클릭해도 동일하게 안전한 결과가 나오므로 만료가 필요하지 않은 경우가 많습니다. 그러나 마법 로그인 링크와 같은 민감한 작업의 경우, signing.loads의 max_age 인수는 데이터베이스 저장 없이 만료를 제공합니다. 이메일 인증과 같은 단일 사용 토큰 시나리오의 경우, 서명만으로는 사용을 추적할 수 없으므로 추가적인 상태 관리(사용된 토큰의 데이터베이스 기록)가 필요합니다.
django.core.signing모듈은SECRET_KEY로 값(예: 사용자의 기본 키)을 서명함으로써 데이터베이스 저장 없이도 변조 방지 토큰을 제공합니다."salt"는 다른 기능 간의 토큰 충돌을 방지하는 데 중요하며, 한 목적(예: 공지)을 위한 토큰이 다른 목적(예: 포럼 알림)에 사용될 수 없도록 보장합니다. 서명된 토큰은 비밀이 아니며, 내부 데이터는 읽을 수 있지만 서명을 무효화하지 않고는 변경할 수 없습니다. 따라서 숨겨져야 하는 민감한 정보는 서명하지 마십시오.중요하게도, 메일 스캐너와 프리페처가 의도치 않게 사용자를 구독 취소하는 것을 방지하기 위해 구독 취소 작업은 GET 요청이 아닌 POST 요청에서 이루어져야 합니다. GET에서 확인 페이지를 표시하고, POST로 작업을 완료하는 것이 권장되는 흐름입니다.구독 취소 토큰은 오래된 링크를 두 번 클릭해도 동일하게 안전한 결과가 나오므로 만료가 필요하지 않은 경우가 많습니다. 그러나 마법 로그인 링크와 같은 민감한 작업의 경우,signing.loads의max_age인수는 데이터베이스 저장 없이 만료를 제공합니다. 이메일 인증과 같은 단일 사용 토큰 시나리오의 경우, 서명만으로는 사용을 추적할 수 없으므로 추가적인 상태 관리(사용된 토큰의 데이터베이스 기록)가 필요합니다.