정상 요청 → 테스트 입력 → 응답 변화 확인 → Nginx 로그 확인 → 방어 원리 확인
SQLi는 요청마다 생성되는 메모리 DB의 가짜 계정만 사용하고, Traversal은 가상 파일시스템만 사용합니다. XSS는 sandbox가 적용된 격리 문서에서만 실행됩니다.
문자열 결합 SQL과 파라미터 바인딩의 결과를 같은 더미 DB에서 비교합니다.
입력값이 HTML로 해석될 때와 이스케이프될 때의 차이를 sandbox에서 비교합니다.
상대경로가 기준 디렉터리를 벗어나는 원리를 실제 파일 대신 가상 경로로 실습합니다.
X-Frame-Options와 frame-ancestors가 외부 iframe 삽입을 어떻게 막는지 확인합니다.
CSP, HSTS, nosniff, X-Frame-Options가 실제 응답에 포함되는지 브라우저에서 확인합니다.
명령 문자열 결합과 허용목록 검증의 차이를 실제 셸 실행 없이 비교합니다.
토큰 없는 상태 변경 요청과 CSRF Token 검증을 비교합니다.
객체 ID만 바꿨을 때와 소유권 검증을 적용했을 때를 비교합니다.
파일명만 신뢰하는 방식과 확장자·MIME 검증을 비교합니다.
사용자 지정 URL 접근과 허용 호스트 검증을 가상 URL로 실습합니다.
next 파라미터를 그대로 신뢰하는 경우와 내부 경로만 허용하는 방식을 비교합니다.
사용자 입력을 템플릿 자체로 렌더링하는 경우와 값으로 전달하는 방식을 비교합니다.
DOCTYPE/ENTITY가 포함된 XML과 안전한 XML 입력 정책을 비교합니다.
위험한 역직렬화 패턴과 JSON 기반 안전한 데이터 처리를 비교합니다.
무제한 로그인 실패와 5회 실패 잠금 정책을 비교합니다.