例如,我在Angular中了解到,在构建项目时,您可以使用以下命令自动添加子资源完整性(SRI)标记:
ng build --subresource-integrity我的问题是,在运行该命令时,我如何知道创建的哈希不是来自恶意CDN?
我觉得这变成了一个鸡和蛋的问题,因为我可能永远不会知道?
发布于 2021-02-17 19:42:06
SRI保护页面中已加载资源的完整性。它可以防止此类资源的受损存储,但前提是页面本身不在该受损存储中。加载资源的页面是特殊的,因为它有机会检查SRI,几乎就像那些资源的来源是不受信任的一样,但您需要能够提供来自受信任来源的页面。
请注意,这比检测恶意CDN更有好处。SRI提供的是确保加载的资源与创建页面时要加载的资源相同。在部署到某个地方之前,可能会发生很多事情,比如CI管道中的资源,它们将在构建过程中存储在中间服务器上,复制到CDN等,SRI确保了所有这些过程的完整性,直到客户端浏览器。但同样,只要包含这些资源的页面不受影响。
换句话说,如果页面和资源一起存储在同一个CDN中,SRI将不会防止CDN的危害-当您信任CDN为您的所有内容提供服务时,它怎么可能呢?但它仍然可以防止这些文件进入CDN的管道受到危害。
编辑:我可能误解了这个问题。
NPM包是用PGP签名的,所以只要您只有可信的密钥,获取依赖项就是安全的。
https://stackoverflow.com/questions/66126663
复制相似问题