programing

스크립트로 인해 "인라인 스크립트 실행 거부:인라인 실행을 활성화하려면 'unsafe-inline' 키워드, 해시 또는 난스가 필요합니다."

kingscode 2023. 3. 12. 12:22
반응형

스크립트로 인해 "인라인 스크립트 실행 거부:인라인 실행을 활성화하려면 'unsafe-inline' 키워드, 해시 또는 난스가 필요합니다."

다음 오류가 계속 발생합니다.

인라인 스크립트가 "default-src 'self' data: gap: http://www.visitsingapore.com https://ssl.gstatic.com 'self-eval' 명령어를 위반하므로 인라인 스크립트 실행을 거부했습니다.'unsafe-inline' 키워드 중 하나, 해시('sha256-V+/U3qbjHKP0SaNQhMw')YNm62gfWX4QHwPJ7We1PXok인라인 실행을 사용하려면 I=' 또는 난스('nonce-...')가 필요합니다.또한 'script-src'는 명시적으로 설정되어 있지 않으므로 'default-src'가 폴백으로 사용됩니다.

누가 이 문제를 해결하는 방법과 의미를 말해줄 수 있나요?암호는 다음과 같습니다.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data:gap: http://www.visitsingapore.com   https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" href="css/jquery.mobile-1.4.5.css">
<script src="lib/jquery-3.2.1.min.js"></script>

<script type="text/javascript" src="scripts/key.js"></script>
<script>$.ajax({
        url: ' http://www.visitsingapore.com/api.listing.en.json',
        type: 'GET',
        beforeSend: function (xhr) {
            xhr.setRequestHeader('email ID', '-------@gmail.com');
            xhr.setRequestHeader('token ID', '-------');
        },
        data: {},
        success: function (qwe12) {
            var TrueResult2 = JSON.stringify(qwe12);
            document.write(TrueResult2);
        },
        error: function () { },
    });</script>

이걸 고치는 가장 좋은 방법은 저걸 가져가는 거야$.ajax(…)문서를 호출하여 외부 파일로 옮기다ajax-call.js다음 작업을 수행합니다.

<script src="ajax-call.js"></script>

이 방법이 더 좋은 이유는 이미 문서에 대한 CSP 정책을 설정하려는 경우 모든 인라인 스크립트를 제거하는 작업을 수행하는 것이 이상적이기 때문입니다.

다만, 어떠한 이유로 스크립트의 인라인 상태를 유지할 필요가 있는 경우는, 그것을 변경할 수 있습니다.meta에러 메시지로부터의 정확한 sha256 해시 값이 소스로 포함되도록 합니다.script-src다음과 같은 지시문(가독성을 위해 일부 줄 바꿈 추가):

<meta http-equiv="Content-Security-Policy"
  content="default-src 'self' data:gap: http://www.visitsingapore.com 
  https://ssl.gstatic.com 'unsafe-eval';
  style-src 'self' 'unsafe-inline';
  media-src *;
  script-src 'sha256-V+/U3qbjHKP0SaNQhMwYNm62gfWX4QHwPJ7We1PXokI='
">

다음은 좀 더 자세한 정보를 얻을 수 있는 몇 가지 장소입니다.

언급URL : https://stackoverflow.com/questions/46256983/script-causes-refused-to-execute-inline-script-either-the-unsafe-inline-keyw

반응형