angularjs - 使用 Require JS 的 angularJS 应用程序中的子资源完整性

标签 angularjs requirejs require subresource-integrity

我有一个带有以下 index.html 文件的 Angular 应用程序

考虑在我的 index.html 页面中,我有以下 SRI 代码(子资源完整性)

<html>
<head>
<meta http-equiv="Content-Security-Policy" 
      content="script-src 'self' scripts/alert.js 'unsafe-inline' 'unsafe-eval' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='">

<script src="scripts/alert.js"
        integrity="sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng="
        crossorigin="anonymous"></script>
</head>
</html>



如果我使用 require JS,那么我必须将包含“alert.js”的脚本移动到“main.js”文件,如下所示

require.config({


    // alias libraries paths
    paths: {
            'jquery': '/scripts/alert'
            },
    // kick start application
    deps: ['../app/require.bootstrap']
 })


有人可以帮助我如何在 main.js 文件中包含完整性属性,同时在路径中引用 alert.js 脚本。

最佳答案

如果我正确理解您的问题,您希望对通过 require js 引用的脚本使用子资源完整性。请注意,为了做到这一点,您需要 RequireJS 2.1.19 或更高版本(参见 http://requirejs.org/docs/download.html)。

有关工作示例(引用 jQuery),请参阅此插件:http://plnkr.co/edit/kzqLjUThJRtoEruCCtMt?p=preview .希望您应该能够将此方法复制到您的项目中。

我的示例将完整性/跨域属性用于:

  • RequireJS 本身(通过 index.html 文件)
  • jQuery(通过配置文件 main.js 和你感兴趣的东西)

  • 这是基于 RequireJS Hook onNodeCreated和像这样的代码
    onNodeCreated: function(node, config, module, path) {
        node.setAttribute('integrity', integrityForModule);
        node.setAttribute('crossorigin', 'anonymous');
    }
    

    请注意,此示例未将 SRI 用于配置文件 main.js文件。为了实现这一点,要么
  • index.html 中包含 RequireJS 配置内联页
  • ...或引用 main.js (配置文件)通过一个额外的脚本标签(具有完整性/交叉),而不是通过 data-main属性
  • 关于angularjs - 使用 Require JS 的 angularJS 应用程序中的子资源完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34348536/

    相关文章:

    javascript - 如何使用 dropzone.js 收集数据 URI 内容?

    javascript - 为什么早午餐要添加这个 requirejs 代码?

    javascript - 优化 Durandal 的构建过程

    php - 当 functions.php 中需要父文件时如何覆盖子 Wordpress 主题中的父文件

    react-native - 当我在 React Native 中使用 `require` 加载图片时,它是否真的将图片加载到内存中?什么时候发布?

    Node.js 异步模块需要

    javascript - 如何使用 ng-class ng-click 删除类?

    javascript - 使用 Angular ui-router 有条件地导航到状态

    c# - SignalR:尝试连接时 webSockets 超时。可能的 CORS 问题

    javascript - 将主干网与发布/订阅解耦