동기화 기 토큰 패턴에서 서버는 임의의 토큰을 생성하며이 토큰은 클라이언트가 각 양식을 제출할 때 제출해야합니다. 클라이언트가 서버에서 생성 된 CSRF 토큰을 어떻게 알 수 있습니까?싱크로 나이저 토큰 패턴을 사용할 때 CSRF 토큰을 클라이언트에 보내는 방법은 무엇입니까?
1
A
답변
2
GET 요청시 토큰을 결과 페이지에 넣을 수 있습니다. 양식이 전송 될 때 자동으로 전송되도록 숨겨진 필드로 양식으로 작성하거나 메타 헤더 (<meta name="csrftoken" content="...">
)와 같은 형식으로 작성할 수 있습니다.
단순한 오래된 양식 게시물 인 경우 숨겨진 필드가 가장 쉽습니다. 자바 스크립트가 관련되어 있다면 (아약스 요청), 자바 스크립트가 가져갈 수있는 페이지의 한 중앙 위치 (예 : 메타 헤더)를 사용하는 것이 더 나을 것입니다.
또한 양식을 사용하면 새 페이지 다운로드마다 다른 토큰을 생성 할 수 있지만 토큰을 변경하는 아약스가 많은 응용 프로그램의 경우 문제가 발생할 수 있습니다. 대부분의 응용 프로그램에서 로그인 세션 당 하나의 토큰 만 허용됩니다.
하지만 원래의 질문은 서버가 생성 된 토큰을 어떻게 보냅니 까? –
@ KasunDharmadasa 나는 그저 대답했다고 생각한다. 서버는 토큰을 클라이언트의 생성 된 페이지 (각 양식 또는 하나의 단일 숨김 필드 또는 JS 값 또는 메타 헤더 또는 생각할 수있는 거의 모든 방법)로 저장합니다. 그것은 페이지 요청에 대한 응답의 일부입니다. –
서버가 정적 인'index.html' 파일 만 제공한다면 어떻게 될까요? – Rachmaninoff