12

Im la creazione di un'estensione Chrome per il lettore di Rss in quanto nel mese di ottenere l'errore precedente. si prega di aiutarerifiutato di eseguire lo script inline perché viola il seguente contenuto direttiva politica di sicurezza: "script src 'sé'"

manifest.json

{ 
    "name": "Tutorialzine Extension", 
     "manifest_version": 2, 
     "version": "1.1", 
     "description": "Making your first Google Chrome extension.", 
     "icons": { 
     "128": "icon_128.png" 
    }, 
     "web_accessible_resources": ["script.js", "https://query.yahooapis.com"], 
     "browser_action": { 
     "default_icon": "icon.png", 
      "default_popup": "tutorialzine.html" 
    }, 
     "permissions": ["tabs", "<all_urls", "http://localhost/", 
     "http://*/*", "https://*/*", "https://query.yahooapis.com"], 
     "content_security_policy": "script-src 'self'; 'https://query.yahooapis.com';unsafe-inline; object-src 'self'" 
} 

script.js

$(document).ready(function() { 

    var query = "SELECT * FROM feed WHERE url='http://feeds.feedburner.com/Tutorialzine' LIMIT 2"; 

    // Storing the seconds since the epoch in now: 
    var now = (new Date()).getTime()/1000; 

    // If there is no cache set in localStorage, or the cache is older than 1 hour: 
    if (!localStorage.cache || now - parseInt(localStorage.time) > 1 * 60 * 60) { 
     $.get("yahoo.js", function (msg) { 

      // msg.query.results.item is an array: 
      var items = msg.query.results.item; 
      var htmlString = ""; 

      for (var i = 0; i < items.length; i++) { 
       var tut = items[i]; 

       // Extracting the post ID from the permalink: 
       var id = tut.guid.content.match(/(\d+)$/)[0]; 

       // Looping and generating the markup of the tutorials: 

       htmlString += '<div class="tutorial">\ 
          <img src="http://tutorialzine.com/img/posts/' + id + '.jpg" />\ 
          <h2>' + tut.title + '</h2>\ 
          <p>' + tut.description + '</p>\ 
          <a href="' + tut.link + '" target="_blank">Read more</a>\ 
          </div>'; 
      } 

      // Setting the cache 
      localStorage.cache = htmlString; 
      localStorage.time = now; 

      // Updating the content div: 
      $('#content').html(htmlString); 
     }, 'json'); 
    } else { 
     // The cache is fresh, use it: 
     $('#content').html(localStorage.cache); 
    } 
} 

errore in jquery.min.js:

Jquery.min.js contiene script inline cosa fare

parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= 
+1

si potrebbe provare a fare il markup StackOverflow parser felice, cioè aggiungi 4 spazi davanti al codice (esiste un pulsante della barra degli strumenti per farlo). – mnagel

+3

Il tuo CSP ha alcuni errori. Dovrebbe essere visualizzato: '" script-src 'self' https://query.yahooapis.com; object-src 'self' "'. Anche 'https: // query.yahooapis.com' non è necessario in' web_accessible_resources'; tale array è destinato alle risorse di estensione ospitate localmente che si desidera rendere disponibili per le pagine Web normali e non di estensione. – apsillers

+0

non deve essere marcato google-chrome-app, le questioni CSP sono diversi tra le applicazioni e le estensioni. –

risposta

5

Ho anche affrontato questo tipo di problema quando si lavora con LinkedIn oAuth API.

Stavo usando linkedIn API con le seguenti impostazioni per Cordova

config.xml

<access origin="*" launch-external="yes"/> 
    <allow-navigation href="*" /> 

Meta Tag era

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

Script

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script> 

quando faccio funzionare l'applicazione su emulatore relativo dare

enter image description here

Corretto il problema di aggiungere uri in meta tag http://platform.linkedin.com come

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://platform.linkedin.com "> 
+1

è un rischio per la sicurezza. Potresti stare bene usando solo "sé" e "non sicuro". –

Problemi correlati