在通过为所有不安全的内联脚本提供随机数来删除它们来强化CSP时,我在网站的特定页面上遇到了问题。我对所有内容进行了编辑,以使其在小规模场景中更容易理解。
product.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");
}
已创建一个随机数以允许在内联脚本上使用CSP。尽管随机数完全匹配,并且