%20sha256%EC%9D%B4%20Chrome%2074.x%EC%97%90%EC%84%9C%20%EB%B6%88%EC%9D%BC%EC%B9%98%ED%95%98%EC%A7%80%EB%A7%8C%20Chrome%2075.x%EC%97%90%EC%84%9C%EB%8A%94%20%EC%A0%9C%EB%8C%80%EB%A1%9C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내 사이트에 다음과 같이 매우 엄격한 콘텐츠 보안 정책(CSP)을 설정하려고 합니다.
base-uri 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval' 'report-sample' https: http: 'sha256-lfXlPY3+MCPOPb4mrw1Y961+745U3WlDQVcOXdchSQc=' 'sha256-rRMdkshZyJlCmDX27XnL7g3zXaxv7ei6Sg+yt4R3svU=' 'nonce-[CSP-NONCE]' 'Strict-Dynamic' 'unsafe-hashes';frame-src 'self';object-src 'none';report-uri /report-csp;
sha256-lfXlPY3+MCPOPb4mrw1Y961+745U3WlDQVcOXdchSQc=
하지만 Chrome/74.0.3729.169에서 'javascript:;' 스크립트와 일치하지 않는 것으로 나타났습니다 .
Chrome/75.x에서 작동하는 것으로 알고 있습니다.
Chrome/74.0.3729.169의 보고서는 다음과 같습니다.
{"csp-report":{"document-uri":"https://xxx.xxx.com/","referrer":"https://xxx.xxx.com/","violated-directive":"script-src-elem","effective-directive":"script-src-elem","original-policy":"base-uri 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval' 'report-sample' https: http: 'sha256-lfXlPY3+MCPOPb4mrw1Y961+745U3WlDQVcOXdchSQc=' 'sha256-rRMdkshZyJlCmDX27XnL7g3zXaxv7ei6Sg+yt4R3svU=' 'nonce-ICXBmlKCIhrG35lflJLb' 'Strict-Dynamic' 'unsafe-hashes';frame-src 'self';object-src 'none';report-uri /report-csp;","disposition":"report","blocked-uri":"inline","line-number":1,"source-file":"https://xxx.xxx.com/","status-code":0,"script-sample":"javascript:;"}}
Chrome 74.x의 버그인가요?
FWIW, 정책의 또 다른 해시는 Chrome 74.x와 Chrome 75.x 모두에서 작동합니다.('sha256-rRMdkshZyJlCmDX27XnL7g3zXaxv7ei6Sg+yt4R3svU=' means 'javascript:void(0)')
브라우저의 사용자 에이전트는 다음과 같습니다.
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36 –