script-src-elemscript-src-elem 은 <script> 요소(외부 src 로딩과 인라인 <script> 블록)에만 적용되는 세분화된 스크립트 지시어입니다. 인라인 이벤트 핸들러 속성은 담당하지 않습니다. 미지정 시 script-src → default-src 순으로 폴백합니다.
CSP3는 script-src 를 두 갈래로 쪼갤 수 있게 했습니다. script-src-elem 은 <script> 태그(요소)를, script-src-attr 은 on* 이벤트 핸들러 속성(예: onclick="...")을 각각 관장합니다. 이렇게 나누면 '외부/인라인 스크립트 로딩은 nonce 로 엄격히 잠그되, 인라인 이벤트 핸들러는 별도 정책으로 통제'하는 식의 정교한 설계가 가능합니다.
주의할 점은 폴백 관계입니다. script-src-elem 이 존재하면 <script> 요소에 대해서는 script-src 가 아니라 script-src-elem 이 우선 적용됩니다. 따라서 script-src 에만 nonce 를 넣고 script-src-elem 을 다르게 지정하면 요소 로딩 정책이 예상과 달라질 수 있으므로, 두 지시어를 동시에 쓸 때는 각 요소가 어느 정책의 지배를 받는지 명확히 이해해야 합니다.
Content-Security-Policy: script-src-elem 'self' 'nonce-r4nd0m' https://cdn.example.com