2015-12-18 10 views
7

Mam aplikacji z kątową poniżej pliku index.htmlSubresource Rzetelność w angularjs aplikacji, która wykorzystuje Wymagaj JS

Rozważmy w moją stronę index.html Mam następujący kod dla SRI (SubResource Integrity)

<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>

w przypadku, gdy używam wymaga JS, to muszę przenieść skrypt sku o 'alert.js' do pliku 'main.js' jak poniżej

require.config({ 
 

 

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

Czy ktoś może mi pomóc jak to atrybut integralność pliku main.js odnosząc alert. skrypt js na ścieżkach.

Odpowiedz

8

Jeśli dobrze rozumiem twoje pytanie, chcesz użyć Sub Resource Integrity dla skryptów przywoływanych przez require js. Uwaga: aby to zrobić, potrzebujesz RequireJS w wersji 2.1.19 lub nowszej (patrz http://requirejs.org/docs/download.html).

Dla przykładu roboczego (odwołując się do jQuery), zobacz ten plunker: http://plnkr.co/edit/kzqLjUThJRtoEruCCtMt?p=preview. Mam nadzieję, że powinieneś być w stanie skopiować tę metodę do swojego projektu.

Mój przykład wykorzystuje integralność/crossorigin atrybuty:

  • sama RequireJS (poprzez plik index.html)
  • jQuery (za pomocą pliku konfiguracyjnego main.js i ciekawą rzeczą dla ciebie)

Jest on zbudowany na haku RequireJS onNodeCreated i kod taki jak

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

Należy pamiętać, że ten przykład NIE używa SRI dla pliku konfiguracyjnego main.js pliku. Aby to osiągnąć, albo

  • obejmują RequireJS config inline w index.html stronie
  • ... lub odniesienie main.js (plik konfiguracyjny) poprzez dodatkową tagu skrypt (z podtrzymaniem/zwrotnicy), a nie za pomocą atrybutu
Powiązane problemy