Server Side Template Injection
공격 방식
공격자가 서버 측 템플릿 엔진에 악의적인 코드를 삽입하여 공격
취약 시나리오
입력값이 템플릿 엔진에 직접 전달될 때
웹 애플리케이션이 사용자의 입력을 받아 이를 서버 측 템플릿에 직접 렌더링
잘못된 템플릿 엔진 사용
취약한 템플릿 엔진 예시: Jinja2, Thymeleaf, Twig, Velocity
방어 방법
템플릿에서 사용자 입력을 피할 것
가능하다면 템플릿에 직접 사용자 입력을 포함시키지 않습니다.
입력값 검증 및 인코딩
사용자 입력을 철저히 검증하고 필요시 적절히 인코딩하여 악의적인 코드가 실행되지 않도록 합니다.
템플릿 엔진 설정
템플릿 엔진의 보안 설정을 점검하고 강화합니다. 예를 들어, Jinja2에서는 **
autoescape
**를 활성화하여 XSS 공격을 방지할 수 있습니다.
최신 보안 패치 적용
템플릿 엔진 및 관련 라이브러리의 최신 보안 패치를 항상 적용합니다.