Content-Security-Policy 헤더를 설정하여 XSS 공격을 완화하려고하는데 Chrome에서 계속 오류가 발생합니다.
다음 콘텐츠 보안 정책 지시문을 위반했기 때문에 인라인 이벤트 핸들러 실행을 거부했습니다. 인라인 실행을 활성화하려면 'unsafe-inline'키워드, 해시 ( 'sha256 -...') 또는 nonce ( 'nonce -...')가 필요합니다.
난스 설정을 시도했지만 <script nonce="Njg3MGUxNzkyMjViNDZkN2I3YTM3MDAzY2M0MjUxZGEzZmFhNDU0OGZjNDExMWU5OTVmMmMwMTg4NTA3ZmY4OQ==" href="main.js"></script>
작동하지 않습니다.
내 Content-Security-Policy
헤더는 다음과 같습니다 .
default-src 'none';
script-src 'self' 'nonce-NjJjN2E5YjA0ZDJhNDlhZjlhMDFmZjQzMjE4YzhmMTAzOWNjZjVjMGZjNDIxMWU5YWIyNGMwMTg4NTA3ZmY4OQ==';
connect-src 'self' https://vimeo.com;
img-src 'self';
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
font-src 'self' https://fonts.gstatic.com;
media-src 'self' http://player.vimeo.com;
frame-src 'self' http://player.vimeo.com;
나는 설정을 싫어 script-src
으로 unsafe-inline
는 콘텐츠 보안 - 정책의 사용이 무효로,
CSP가 HTML 코드에서 인라인 이벤트 핸들러 (예 : <button onclick="myFunction()">Click me</button>
.
인라인 이벤트 핸들러는 나쁜 습관입니다 (대부분 인라인이기 때문에). 통찰력을 얻으려면 이 답변 을 참조하십시오 .
Nonce 는 인라인 이벤트 핸들러에서 작동하지 않는 것 같습니다 . 따라서 가장 좋은 방법은이 이벤트 핸들러를 JS 파일에 작성된 적절한 핸들러로 바꾸는 것입니다. 그렇게 할 수 없다면 '안전하지 않은 해시' 를 script-src
.
거절 'unsafe-inline'
에 대한 찬사 , 그것은 우리가 프로덕션을 포함하여 너무 자주 보는 지름길입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다