Sì.
Sembra che script-nonce
sia stato rimosso dalla specifica, invece script-src 'nonce-ABCD4321';
dovrebbe essere la nuova sintassi. Da quello che posso dire, la nuova sintassi non è supportata in Chrome 32 ma è supportata da Chrome 33 Beta.
Vedi link ad esempio per la pagina di test.
EDIT1: sembra Blink patch link
rimuove il supporto di script-nonce
e aggiunge il supporto di script-src 'nonce-xxx';
.
EDIT3: Ultime specifiche .
EDIT2: Ho assolutamente bisogno di script e css in linea perché la mia app web ha il codice in-page per rilevare se lo script incluso oi file di origine CSS non vengono caricati (ad esempio a causa di una connessione mobile inaffidabile). In Chrome, la creazione del meta elemento funziona in modo dinamico:
<script>
var meta = document.createElement('meta');
meta.httpEquiv = 'Content-Security-Policy';
meta.content = "default-src 'none'; connect-src 'self'; img-src 'self'; style-src 'self';";
document.getElementsByTagName('head')[0].appendChild(meta);
</script>
</head>
Da Content Security Policy 1.1 - Bozza di lavoro W3C 04 giugno 2013 :
Esempio 4: un sito web che si basa su elementi di script inline desidera assicurarsi che lo script venga eseguito solo dalla propria origine e quegli elementi inseriti intenzionalmente in linea:
Content-Security-Policy: script-src 'self' 'nonce-$RANDOM';
Gli elementi di script inline verranno quindi eseguiti solo se contengono un attributo nonce corrispondente:
<script nonce="$RANDOM">...</script>
EDIT5: link ha un esempio di registrazione document.onsecuritypolicyviolation (evento). per es.
document.onsecuritypolicyviolation = function (evt) {
console.log('Bzzp! Security violation on', evt.documentURI);
}
EDIT5 - ALTRO: Beta di Chrome 33 ha generato i seguenti dettagli dell'evento:
blockedURI: ""
columnNumber: 0
currentTarget: document
documentURI: "http://jsbin.com/ArusOCu/1"
effectiveDirective: "script-src"
lineNumber: 0
originalPolicy: "default-src 'none'; script-src http://static.jsbin.com 'unsafe-eval' 'nonce-12345678'; connect-src 'self'; style-src http: 'unsafe-inline';"
referrer: ""
sourceFile: ""
statusCode: 200
target: document
timeStamp: 1390192192606
type: "securitypolicyviolation"
violatedDirective: "script-src http://static.jsbin.com 'unsafe-eval' 'nonce-12345678'"
__proto__: SecurityPolicyViolationEvent
[removed base Event parameters]
e i documenti dicono che sono richieste le seguenti proprietà:
readonly attribute DOMString documentURI;
readonly attribute DOMString referrer;
readonly attribute DOMString blockedURI;
readonly attribute DOMString violatedDirective;
readonly attribute DOMString effectiveDirective;
readonly attribute DOMString originalPolicy;
readonly attribute DOMString sourceFile;
readonly attribute long lineNumber;
readonly attribute long columnNumber;