PCI合规性-脚本Src完整性检查

时间:2019-03-06 17:56:30

标签: javascript cdn pci-compliance

我的脚本中有几个<script src="">标签。对于内部文件系统中的所有js文件,我正在使用命令like-

cat jquery.js | openssl dgst -sha384 -binary | openssl base64 -A

生成一个以base64编码的sha384哈希,并将其包含在脚本标记中,例如-

<script src="/js/jquery.js" integrity="J3vFgsKDNFSLyAxQe5jAHGNrVWc5wlIQG+hTxg57KX5ESMgxRMK1AbVWMP7kXogS"></script>

但是我的脚本也有一些外部js,就像

<script src="https://code.jquery.com/jquery-latest.js"></script>

我如何为外部js生成哈希,以便我也可以为它们包含intergrity属性?

2 个答案:

答案 0 :(得分:1)

您始终可以将文件下载到磁盘,然后运行命令。或者,您也可以换出命令的第一部分-您可以让cat jquery.js

代替curl -s <URL>

将它们放在一起:

curl -s https://code.jquery.com/jquery-latest.js | openssl dgst -sha384 -binary | openssl base64 -A

请记住,如果(当)脚本由第三方更新,则完整性检查将失败。对于jQuery示例,您应该期望发布更新时会更改“ jquery-latest.js”文件(因此会破坏完整性检查并导致脚本无法加载)。换句话说,发布更新后,您的网站可能会崩溃。

您可能需要考虑链接到特定版本(例如“ https://code.jquery.com/jquery-3.4.1.min.js”)。这意味着您(或团队中的其他Web开发人员)将负责使jQuery(以及脚本标签的哈希)保持最新状态-尤其是在发布安全修复程序时。

另外值得注意的是,如果文件托管在同一域(即,在您的Web服务器上),则无需包含散列符即可实现PCI合规性。只有外部托管的javascript文件才需要哈希。

答案 1 :(得分:0)

您可以在此链接SRI HASH

上为外部js资源生成SRI哈希。

此后我进行了诊断,并且效果很好