SQL Injection, XSS, CSRF는 깨지는 신뢰 경계가 다르다
이름을 먼저 외우기보다 사용자 값이 어느 경계를 넘어 명령, 코드, 권한 있는 요청으로 해석되는지 추적하면 대응책도 같이 정리된다.
자산-공격면-통제 매핑
동적 SQL, 오류 메시지, 과도한 DB 권한이 공격면이 된다.
쿼리 바인딩, 오류 제한, 계정별 최소권한을 같이 적는다.
댓글, 템플릿, innerHTML, URL 조립이 실행 경로가 된다.
출력 위치별 인코딩과 CSP로 실행 가능성을 낮춘다.
POST라고 안전한 것이 아니라 인증 쿠키 자동 첨부가 핵심이다.
토큰과 출처 검증으로 사용자의 실제 의도를 확인한다.
실기 답안 체크포인트
-
1
조작 대상 먼저 쿼리 구조, 출력 문맥, 요청 의도 중 무엇이 깨졌는지 쓴다.
-
2
피해 위치 연결 DB, 브라우저, 상태 변경 기능처럼 피해가 생기는 자산을 붙인다.
-
3
주 통제와 보조 통제 Prepared Statement, 문맥별 인코딩, CSRF 토큰을 축으로 보조책을 더한다.
오답 경계: HTTPS는 전송 구간 보호이고, HttpOnly는 쿠키 탈취 완화이며, 입력 검증만으로 CSRF를 증명하지 못한다.