-
CSRF와 XSS에 대한 설명CS (Computer Science) 2025. 1. 11. 00:14
CSRF와 XSS에 대한 설명
CSRF (Cross Site Request Forgery)
- 사용자의 의지와 무관하게 공격자가 의도한 요청(modify, delete 등)을 특정 웹사이트에 보내는 공격.
- 사용자의 권한을 도용해 중요한 작업을 실행.
ex) 사용자가 해커가 만든 피싱 사이트에 접속한 상태에서 자동 로그인이 활성화된 SNS 계정으로 광고성 글이 게시됨.
대응 기법
- 리퍼러(Referrer) 검증: 요청이 승인된 도메인에서 왔는지 확인.
- Security Token 사용: 서버에서 생성한 난수를 세션에 저장하고, 요청 시 해당 난수를 포함해 서버가 검증.
- 단점: XSS에 취약하면 CSRF 공격 가능.
XSS (Cross Site Scripting)
- 공격자가 웹사이트에 악성 스크립트를 삽입해, 이를 열람한 사용자의 데이터를 탈취하는 공격.
- 탈취한 쿠키를 사용해 세션 하이재킹(권한 도용)을 수행.
공격 종류
- 지속성(Persistent):
- 악성 스크립트를 데이터베이스에 저장해 지속적으로 사용자에게 피해.
- 반사형(Reflected):
- 사용자 입력값을 그대로 반사하는 곳에 악성 스크립트를 삽입. URL 클릭으로 유도.
- DOM 기반:
- 클라이언트 측에서 실행되는 스크립트를 변조해 실행. 탐지가 어려움.
대응 기법
- 입출력 값 검증:
- 입력값을 검증하고 필터링해 악성 스크립트를 차단.
- XSS 방어 라이브러리/확장앱:
- 서버에서 라이브러리 사용, 브라우저에서 확장앱 설치.
- 웹 방화벽:
- 다양한 인젝션 공격 방어.
- CORS, SOP 설정:
- 지정된 도메인 외 리소스 요청을 차단.
CSRF vs XSS 비교
항목 CSRF XSS
공격 방식 사용자의 권한을 도용해 요청 수행 악성 스크립트를 삽입해 사용자 데이터 탈취 대상 서버의 중요한 기능 클라이언트(사용자 브라우저) 대응 기법 Referrer 검증, Security Token 사용 입력값 검증, 웹 방화벽, CORS/SOP 설정 예시 SNS 계정으로 광고 글 게시 탈취한 쿠키로 세션 하이재킹 요약
- CSRF: 사용자의 권한을 이용한 서버 공격.
- XSS: 악성 스크립트를 통해 사용자의 데이터를 탈취.
- 둘 다 웹 보안에서 중요한 취약점이며, 적절한 방어 기법을 통해 예방이 필요.
'CS (Computer Science)' 카테고리의 다른 글
CSR과 SSR에 대한 설명 (0) 2025.01.11 Logging Level (0) 2025.01.11 JWT (JSON Web Token) (0) 2025.01.11 HTTP vs HTTPS (0) 2025.01.11 OAuth1.0과 OAuth2.0 (0) 2025.01.11