저는 응용 프로그램에서 간단한 CSRF 보호를 설정했습니다. 양식을 제출할 때 세션 값에 대해 유효성이 검사되는 고유 한 부스러기를 만듭니다.CSRF 토큰 - 올바르게 구현하는 방법?
불행히도 이것은 이제 CSRF 부스러기가 서로 충돌 할 때 내 애플리케이션의 여러 인스턴스 (브라우저의 탭)를 동시에 열어 둘 수 없음을 의미합니다.
실제 양식마다 개별 토큰을 만들거나 모든 양식에 대해 상호 공유 부스러기를 사용해야합니까? 여기에 상식은 무엇입니까?
각 양식의 각 인스턴스마다 자체 토큰이 있음을 의미합니까? 예. ''? – Industrial
나는 하나의 세션 당 하나의 토큰을 갖는 것이 http (오직 https)를 통해 제출하지 않는 한 적당하다고 생각한다. 그들은 많은 보안 문제를 세션 ID와 공유합니다. XSS가있는 경우 공격자는 iframe을 열고 토큰을 읽으며 CSRF를 수행 할 수 있습니다. – Erlend
XSS가있는 경우 이미 분실했습니다. 추가적인 폼 별 nonce는 당신을 구해주지 않을 것입니다 (공격자는 새로운 nonce를 가진 새로운 폼을 얻을 수 있고, 사용자가 작성한 것처럼 폼을 채우고 제출할 수 있습니다). 사용자 당 단일 값은 CSRF에 절대적으로 충분합니다. – Kornel