jquery 脚本导致“拒绝执行内联脚本:需要'unsafe-inline'关键字、散列...或随机数来启用内联执行”

py49o6xq  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(352)

我不断收到此错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default-src 'self'数据:gap:http://www.visitsingapore.comhttps://ssl.gstatic.com 'unsafe-eval'"。启用内联执行需要“unsafe-inline”关键字、散列('sha 256-V+/U3 qbjHKP 0 SaNQhMwYNm 62 gfWX 4 QHwPJ 7 We 1 PXokI =')或随机数('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>

字符串

yeotifhr

yeotifhr1#

解决这个问题的最佳方法是将$.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='
">


以下是几个可以获得更多信息的地方:

  • developers.google.com/web/fundamentals/security/csp/#if_you_absolutely_must_use_it
  • www.owasp.org/index.php/Content_Security_Policy_Cheat_Sheet#Refactoring_inline_code
zfycwa2u

zfycwa2u2#

在我的情况下,这是由于插件发生,插件试图在网站和网站阻止它执行一些操作.问题是BlazeMeter Chrome插件。
所以只要删除插件,然后再试一次。或者用其他浏览器查看。

相关问题