CSRF 방어 적용 방안

2. 19 오후 4:40

CSRF(Cross-Site Request Forgery)  공격 방어를 위한 토큰을 적용한다.

CSRF 공격은 인증된 사용자가 본인의 의사와 관계없이 공격자가 조작한 요청을 서버에 보내어 공격하는 방식이다.

이를 방어하기 위해, 각 세션당  임의 값(토큰)을 서버에서 생성하여 세션에 저장 후 클라이언트(통상 브라우저)에게 전달하면, 클라이언트가 요청시 해당 토큰을 함께 보내게 하여 세션에 저장된 토큰과 비교함으로 요청을 차단 여부를 판단하도록 하는 방법을 사용한다.

토큰 값 생성 주기

토큰 값이 오래 유지되면 탈취되었을 때, 악용될 수 있는 시간이 길게 되므로 매요청시마다 새로 생성하여 전달한다.

토큰 값 형태

추정하기 힘든 임의의 값을 생성하여야 하는데 너무 길면 생성하는 시간이 오래 걸리므로 적당한 길이의 값을 생성하도록 한다.

토큰 전달 방법

서버에서 생성된 토큰을 전달하는 형태는, 중간에 탈취되기 어렵게 하되,  클라이언트가 이용할 수 있도록 전달해야 한다.