Целостность субресурса для импорта es6 - PullRequest
0 голосов
/ 04 октября 2018

<script> принять атрибут integrity, чтобы я мог безопасно загрузить модуль:

<script type="module"
  src="https://example.com/module.mjs"
  integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
  crossorigin="anonymous"
></script>

Но как обеспечить безопасность при загрузке модуля внутри скрипта?

  • симпорт:
import foo from "https://example.com/module.mjs"
  • динамический импорт:
import("https://example.com/module.mjs").then(console.log)
  • или даже веб-работник:
const myWorker = new Worker('worker.js')

1 Ответ

0 голосов
/ 24 октября 2018

Пожалуйста, посмотрите этот вопрос

Можно ли использовать целостность подресурсов при импорте модуля ES6?

Выможете использовать RequireJS и перенести ваш код в AMD или UMD для достижения этой цели.RequireJS имеет хук onNodeCreated, который дает вам доступ к тегу сценария до его добавления в документ.Вы можете добавить атрибут sri в тег скрипта:

onNodeCreated: function(node, config, module, path) { node.setAttribute('integrity', integrityForModule); node.setAttribute('crossorigin', 'anonymous'); }

credit: https://stackoverflow.com/a/37065379

Я использую Webpack (с целью UMD) и RequireJS.С соответствующими модулями, помещенными во внешний раздел файла конфигурации webpack, чтобы модули не компилировались в передаваемый код.

...