`setHTML()`과 완벽한 타입들
Perfect Types는 **Content-Security-Policy(CSP)**에서 require-trusted-types-for 'script'; trusted-types 'none';를 설정하여, 기존의 위험한 HTML 삽입 API를 모두 차단하고 오직 setHTML() 만을 안전한 HTML 삽입 수단으로 허용하는 방식을 의미합니다.
이 접근법은 Trusted Types 기능을 활용해, 신뢰되지 않은 문자열을 통한 DOM 기반 XSS 공격을 근본적으로 제거하며, 별도의 정책(TrustedTypePolicy) 없이도 안전한 HTML 처리를 보장합니다.
실제로는 setHTML()을 통해 문서에 직접 안전하게 HTML을 삽입하거나, Document.parseHTML()로 임시 문서를 생성 후 필요한 노드를 선택해 현재 문서에 안전하게 옮기는 방식을 권장합니다.
이 방법은 보안 전문가가 지속적으로 정책을 관리해야 하는 부담을 줄이고, 개발자가 별도의 복잡한 정책 없이도 DOM XSS 위험을 효과적으로 차단할 수 있는 실용적인 보안 대안입니다.