CSRF, XSS, SSI의 정의와 차이점을 표로 정리하겠습니다:
| 특성 | CSRF (Cross-Site Request Forgery) | XSS (Cross-Site Scripting) | SSI (Server-Side Include) Injection |
|---|---|---|---|
| 정의 | 인증된 사용자의 권한으로 원치 않는 작업을 수행하도록 하는 공격 | 웹 애플리케이션에 악성 스크립트를 삽입하여 실행하는 공격 | 서버 측 include 기능을 악용하여 서버에서 악성 코드를 실행하는 공격 |
| 실행 위치 | 사용자의 브라우저 | 사용자의 브라우저 | 웹 서버 |
| 주요 목적 | 인증된 사용자의 권한으로 작업 수행 | 사용자의 세션 탈취, 악성 스크립트 실행 | 서버 측 명령어 실행, 파일 접근 |
| 공격 방식 | 사용자 모르게 요청 전송 | 악성 스크립트 삽입 및 실행 | 서버 측 include 지시문에 악성 코드 삽입 |
| 주요 영향 | 계정 정보 변경, 자금 이체 등 | 개인정보 유출, 피싱, 악성코드 배포 | 서버 파일 시스템 접근, 임의 명령 실행 |
| 방어 방법 | CSRF 토큰, Referer 검증 | 입력값 검증, 출력 인코딩 | 사용자 입력 검증, SSI 비활성화 |
| 취약점 위치 | 서버의 요청 처리 로직 | 클라이언트 측 스크립트 처리 | 서버의 SSI 처리 로직 |
이 표를 통해 각 공격 기법의 주요 특성과 차이점을 한눈에 비교할 수 있습니다. 모든 공격은 웹 애플리케이션의 보안을 위협하지만, 각각 다른 방식으로 작동하며 서로 다른 방어 전략이 필요합니다.