2015-12-18 29 views
7

Ho un'applicazione angolare di seguito file index.htmlSubresource Integrità in angularJS App che utilizza Richiede JS

considerare nella mia pagina index.html Ho il seguente codice per SRI (SubResource Integrità)

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

nel caso in cui, se sto usando richiedere JS, allora devo spostare lo script in clusione di 'alert.js' al file 'main.js' come di seguito

require.config({ 
 

 

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

Qualcuno mi può aiutare come includere l'attributo 'integrità del file main.js facendo riferimento l'avviso. js script nei percorsi.

risposta

8

Se ho compreso correttamente la tua domanda, vuoi utilizzare l'Integrità della risorsa secondaria per gli script referenziati tramite require js. Nota che per fare questo hai bisogno di RequireJS versione 2.1.19 o successiva (vedi http://requirejs.org/docs/download.html).

Per un esempio di lavoro (riferimento jQuery), vedere questo plunker: http://plnkr.co/edit/kzqLjUThJRtoEruCCtMt?p=preview. Spero che dovresti riuscire a copiare questo metodo nel tuo progetto.

mio esempio utilizza l'integrità/attributi crossorigin per:

  • RequireJS stesso (attraverso il file index.html)
  • jQuery (tramite il file di configurazione main.js e la cosa interessante per voi)

Questo è costruito sul gancio RequireJS onNodeCreated e codice come

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

Si prega di notare che questo esempio NON usa l'SRI per il file di configurazione main.js. Al fine di realizzare questo, sia

  • includono le RequireJS linea config nella index.html pagina
  • ... o riferimento main.js (file di configurazione) tramite un tag script in più (con integrità/crossover), e non tramite l'attributo data-main