직역하면 사이트 사이 요청을 위조한다!
웹 어플리케이션 취약점 중 하나로, 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위 (modify, delete, register 등)를 특정한 웹사이트에 request하도록 만드는 공격을 말한다.

주로 해커들이 많이 이용하는 것으로, 유저의 권한을 도용해 중요한 기능을 실행하도록 한다.
회원정보 변경, 데이터의 수정/삭제, 게시글 내용 변경 등을 할 수 있다.예시 해커가 사용자의 SNS 계정으로 광고성 글을 올리는 것
CSRF는 해커가 사용자 컴퓨터를 감염시거나 서버를 해킹해서 공격하는 것이 아니다. CSRF 공격은 아래와 같은 조건이 만족할 때 실행된다.
보통 자동 로그인을 해둔 경우에 이런 피싱 사이트에 접속하게 되면서 피해를 입는 경우가 많다.
1. Security Token 사용
사용자의 세션에 임의의 난수 값을 저장하고, 사용자의 요청시 해당 값을 포함하여 전송시킨다. 백엔드 단에서는 요청을 받을 때 세션에 저장된 토큰값과 요청 파라미터로 전달받는 토큰 값이 일치하는 지 검증 과정을 거치는 방법이다.
2. Referer 값 이용
프록시 툴, 패킷 등을 통해 확인하면 다른 페이지로 이동할 경우 전 페이지 정보를 가지고 이동한다. 이때 전 페이지 정보가 없거나, 외부 사이트에서 요청을 한 경우 요청을 처리하지 않는 방법이 있다.
3. 캡챠 사용

회원정보 변경, 게시글 작성 등 CSRF의 공격을 막아야 하는 페이지에서 캡챠를 사용해 인증이 가능한 것만 요청을 처리해주는 방법이 있다.
캡챠는 랜덤 이미지를 통해 인증이 되므로 사용자 몰래 요청하는것이 불가능 하다는 장점이 있다.
CSRF와 같이 웹 어플리케이션 취약점 중 하나로, 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법을 말한다.

악의적으로 스크립트를 삽입하여 이를 열람한 사용자의 쿠키가 해커에게 전송시키며, 이 탈취한 쿠키를 통해 세션 하이재킹 공격을 한다. 해커는 세션ID를 가진 쿠키로 사용자의 계정에 로그인이 가능해지는 것이다.
공격자는 입력 데이터에 스크립트 코드를 입력하여 세션 정보를 탈취하는 것부터 사용자를 악의적인 사이트로 이동하게 하거나, 악성 프로그램을 강제로 다운로드 하게 한다.
Reflected XSS
바로 번역하면, 비추는 XSS, 반사하는 XSS
악성 스크립트가 있는 url을 사용자가 클릭하도록 유도하여, 클라이언트를 공격하는 방식으로, 쪽지나 웹 게시판을 통해 많이 이루어짐. 이 방법은 브라우저 자체에서 막는 경우가 많음
Stored XSS
Persistent XSS 라고도 함.
말 그대로 지속적으로 피해를 입히는 유형으로, XSS 취약점이 존재하는 웹 어플리케이션에 악성 스크립트를 삽입하여 열람한 사용자의 쿠키를 탈취하거나 리다이렉션 시키는 공격을 한다. 이때 삽입된 스크립트를 데이터베이스에 저장시켜 지속적으로 공격을 하기 때문에 Persistent XSS라고 불린다.
Reflected XSS와 유사하나 Reflected XSS는 악성스크립트가 포함된 URL을 사용자가 클릭하게 유도하는 공격방식이고, Stored XSS는 웹 서버에 공격용 스크립트를 입력시켜 놓으면 해당 페이지를 읽는 순간 브라우저를 공격하는 방식
DOM XSS
악성 스크립트가 포함된 URL을 사용자가 요청하게 되면서 브라우저를 해석하는 단계에서 발생하는 공격으로, 이 스크립트로 인해 클라이언트 측 코드가 원래 의도와 다르게 실행된다.
이는 다른 XSS 공격과는 달리 서버 측에서 탐지가 어렵다.
1) Script 문자 필터링
XSS 공격은 입력값에 대한 검증이 제대로 이루어지지 않아 발생하는 취약점이다. 때문에 사용자의 모든 입력 값에 대한 정보를 서버 측에서 필터링해서 출력해 줘야 한다.
XSS Cheat Sheet에 대한 필터 목록을 만들어 모든 치트 시트에 대한 대응이 가능하도록 한다.
2) XSS 방어 라이브러리, 확장앱 사용
서버 단에서는 Anti XSS 라이브러리를 적용한다.
사용자 측에서는 개발자나 보안 확인을 위해서가 아니면 XSS필터를 켜둔다(default 값: on). 웹 브라우져 업데이트가 나오면 자주 업데이트 하는 것도 좋다.
3) 웹 방화벽 사용
4) 쿠키에 중요 정보 포함시키지 않기

https://github.com/haewon-park/csStudy/tree/main/Web
https://kk-7790.tistory.com/73
https://hack-cracker.tistory.com/253 => CSFR 실습 예시
https://lucete1230-cyberpolice.tistory.com/191
https://godhaword.tistory.com/108