当我通过删除所有不安全的内联脚本来强化我的CSP时,我在我的网站的一个特定页面上遇到了一个问题。我编辑了所有内容,以便在小规模场景下更容易理解。
php加载将为其显示产品的模板。
<div id="productDisplay"></div>
<script nonce="sampleCorrectNonce" type="text/javascript">
product();
</script>
product.php?id=123加载实际的产品数据,需要通过不同的场景用新信息刷新。
if ($_GET['action'] === 'displayProduct') {
echo '
samleData
<script nonce="sampleCorrectNonce" type="text/javascript">
productReady();
productOptions();
</script>
';
}
在product.php上有一个初始javascript代码,它按ID激发product.php?id=123并将其加载到DIV中。
product = function() {
$("#productDisplay").load("//"+ document.domain + "/shop/product.php?action=displayProduct&id=123");
}
创建了一个nonce以允许在内联脚本上进行CSP。尽管nonce完全匹配并且