使用“严格动态”适用于 CHROME,但不适用于 FIREFOX。
使用 FIREFOX:
我的 PHP 代码。我应该看到“javascript yes!!!!!!!!!!!!”在控制台中。用 chrome 没问题。 Firefox 拒绝并且不加载我的 jquery
<?
header("Content-Security-Policy: script-src 'strict-dynamic' 'sha384-I7/UTpkJas2maMjJpGmrvEgQecqO8Dta/9Wwh+cQrH6Jj984WRRFhWg4MV/oTkIW' 'nonce-0006c7f26c'; ", true);
if(isset($_GET["ajx"]))
{
?>
YES
<script>
console.log('javascript yes !!!!!!!!!!!')
</script>
<?
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="../public/plugins/jquery/jquery-3.3.1.min.js" integrity="sha384-I7/UTpkJas2maMjJpGmrvEgQecqO8Dta/9Wwh+cQrH6Jj984WRRFhWg4MV/oTkIW" crossorigin="anonymous"></script>
</head>
<body>
body <div id="zz"></div>
<script nonce=0006c7f26c>
console.log('yes')
$.ajax({
type:"POST",
url:'/public/testCSP.php?ajx=1',
async:false,
success : function(response, statut)
{
if(response)
{
$('#zz').html(response);
}
},
error : function(resultat, statut, erreur){ if(erreur) alert("Erreur : "+erreur)},
complete : function(resultat, statut){ }
});
</script>
</body>
</html>