Cross Site Request Forgery
웹 어플리케이션 취약점 중 하나로, 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(modify, delete, register 등)를 특정한 웹사이트에 request 하도록 만드는 공격을 말한다.
주로 해커들이 많이 이용하는 것으로, 유저의 권한을 도용해 중요한 기능을 실행하도록 한다.
우리가 실생활에서 CSRF 공격을 볼 수 있는 건, 해커가 사용자의 SNS 계정으로 광고성 글을 올리는 것이다. 정확히 말하면, CSRF는 해커가 사용자 컴퓨터를 감염시키거나 서버를 해킹해서 공격하는 것이 아니다. CSRF 공격은 아래와 같은 조건이 만족할 때 실행된다.
보통 자동 로그인을 해둔 경우에 이런 피싱 사이트에 접속하게 되면서 피해를 입는 경우가 많다. 또한, 해커가 XSS 공격을 성공시킨 사이트라면, 피싱 사이트가 아니더라도 CSRF 공격이 이루어질 수 있다.
Refferer 검증
백엔드 단에서 Refferer 검증을 통해 승인된 도메인으로 요청시에만 처리하도록 한다.
Security Token 사용
사용자의 세션이나 메모리에 임의의 난수 값을 암호화하여 저장하고, 사용자의 요청시 해당 값을 포함하여 전송시킨다. 백엔드 단에서는 요청을 받을 때 세션 및 서버 환경변수에 저장된 암호화된 토큰값과 요청 파라미터로 전달받는 암호화된 토큰 값이 일치하는 지 복호화하여 검증 과정을 거치는 방법이다.
Cross Site Scription
CSRF와 같이 웹 어플리케이션 취약점 중 하나로, 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법을 말한다.
악의적으로 스크립트를 삽입하여 이를 열람한 사용자의 쿠키가 해커에게 전송시키며, 이 탈취한 쿠키를 통해 세션 하이재킹
공격을 한다. 해커는 세션 ID를 가진 쿠키로 사용자의 계정에 로그인이 가능해지는 것이다.