Frage:
Warum sagt mir Chrome, dass die CSP-Direktive "require-sri-for" hinter einem Flag implementiert ist, das derzeit deaktiviert ist?
jamieweb
2018-02-24 22:37:10 UTC
view on stackexchange narkive permalink

In meine Inhaltssicherheitsrichtlinie habe ich require-sri-for script aufgenommen. In der Chrome-Konsole wird jedoch ein Hinweis angezeigt (kein Fehler, nur Informationen):

Die Richtlinie "require-sri-for" für Inhaltssicherheitsrichtlinien wird hinter einem Flag implementiert Derzeit deaktiviert.

Soweit ich das interpretieren kann, sagt es mir, dass ich versuche, SRI für etwas zu benötigen, das sowieso deaktiviert ist. Wenn ich zum Beispiel: script-src 'none' habe, wäre es sinnlos, require-sri-for script zu haben, da alle Skripte sowieso nicht erlaubt sind.

Der Hinweis wird jedoch weiterhin angezeigt, wenn ich script-src 'self' habe.

Was ist die richtige Bedeutung dieses Hinweises und was muss ich tun? um es zu beheben?

* "wird hinter einem Flag implementiert, das derzeit deaktiviert ist" * - Dies bedeutet, dass der Browser standardmäßig keine Ahnung hat, was `require-sri-for` bedeutet, und dass Sie ihn explizit aktivieren müssen, um es zu verwenden, dh in` chrome:: // flags`.Aber sind Sie sicher, dass Sie Chrome wirklich verwenden?Laut https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/require-sri-for sollte die Funktion seit Chrome 54 verfügbar sein, ist aber noch experimentell (und deaktiviert)standardmäßig) derzeit in Firefox.
Ohh, das macht Sinn!Ich dachte, dass es eine CSP-Direktive oder einen Wert unter dem Begriff "Flag" bedeutet, keine Chrome-Flagge!Wie Sie sagen, heißt es im MDN-Artikel, dass es seit Chrome 54 unterstützt wird, aber ich erhalte die gleiche Warnung in den neuesten Versionen von Chrome und Chromium.
@SteffenUllrich Ich denke, Chrome erfordert immer noch ein Flag, da die [Funktion] (https://www.chromestatus.com/feature/5635811978510336) immer noch auf einen Fehler verweist, der noch offen ist (und in der letzten Woche aktualisiert wurde).
Drei antworten:
Michal Špaček
2018-03-28 20:46:42 UTC
view on stackexchange narkive permalink

Chrome teilt Ihnen mit, dass es die Direktive kennt, der Browser jedoch derzeit so konfiguriert ist, dass sie ignoriert wird, unabhängig davon, ob sie angewendet wird oder nicht.

SRI (Subresource Integrity) als W3C-Empfehlung ist ab Juni 2016, aber require-sri-for , die Richtlinie zur Inhaltssicherheitsrichtlinie, wurde später im August im Editor's Draft eingeführt. Entwürfe sind Nur zur Diskussion vorgesehen und kann jederzeit geändert werden. Solche experimentellen Funktionen sind normalerweise nicht standardmäßig aktiviert, um Platz für Änderungen in der Implementierung, Spezifikation oder beidem zu schaffen.

Immer wenn Chrome-Spots auftreten Bei der Anweisung in einer Richtlinie wird zunächst geprüft, ob experimentelle Funktionen aktiviert sind, und die Anweisung und ihr Wert werden analysiert, wenn ja. Wenn experimentelle Funktionen nicht aktiviert sind, wird die angezeigte Meldung protokolliert:

Die Direktive "require-sri-for" für Inhaltssicherheitsrichtlinien wird hinter einem Flag implementiert, das derzeit deaktiviert ist.

Die Nachricht wird auch dann gemeldet, wenn Skripte später mit script-src 'none' deaktiviert werden. Die Nachricht wird beim Parsen der Direktive frühzeitig in der Konsole angemeldet . Sie können es im Quellcode in der Methode CSPDirectiveList :: AddDirective sehen.

Damit die Nachricht verschwindet, haben Sie zwei Möglichkeiten:

  1. Aktivieren Sie die # enable-experimentelle-Webplattform-Funktionen in chrome: // flags / (kopieren Sie dieses Chrome : // flags / # enable-experimentelle-web-platform-features und füge es in dein Chrome ein, starte den Browser neu) und teste deine Richtlinie, damit du bereit bist, wenn -sri-for benötigt wird ausgeliefert, dies führt jedoch dazu, dass die Nachricht nur für einen sehr kleinen Prozentsatz der Benutzer verschwindet, die experimentelle Funktionen in ihren Browsern aktiviert haben.

  2. Entfernen Sie require-sri-for aus Ihrer Richtlinie, z. B. wenn Sie es nicht benötigen, weil Sie script-src 'none' verwenden und fügen Sie es später wieder hinzu, sobald Sie Skripts überprüfen möchten.

  3. Warten Sie, bis Chrome die Funktion für alle aktiviert. Bis dahin sehen Benutzer die Meldung in der Konsole, auch wenn Sie dies tun Ich überprüfe nicht die Integrität geladener Skripte.

  4. ol>

    Ich persönlich gehe zu Option 3, habe aber vorübergehend das Flag aktiviert, um zu sehen, ob die Site funktionieren würde, wenn erforderlich ist -sri-for würde versendet.

`# enable-experimentelle-web-platform-features` - Das scheint die mysteriöse Flagge zu sein, die ich nicht finden konnte!Vielen Dank
jamieweb
2018-03-02 23:21:12 UTC
view on stackexchange narkive permalink

Dies bedeutet, dass die Funktion require-sri-for in chrome: // flags deaktiviert ist. Ich konnte jedoch kein relevantes Flag finden, das dies ermöglicht.

In der Mozilla-Dokumentation heißt es, dass require-sri-for in unterstützt wurde Chrome seit Version 54, ich habe jedoch sowohl die neuesten Versionen von Chrome als auch Chromium getestet, und dies scheint nicht der Fall zu sein.

Dies scheint ein bekannter Fehler in Chrome zu sein, der derzeit nicht behoben ist.

Bearbeiten 2018-03-29 : Ich habe die akzeptierte Antwort in die von Michal Špaček geändert. Code>.

Anders
2018-02-26 16:29:46 UTC
view on stackexchange narkive permalink

Wenn Browser-Anbieter neue Funktionen einführen, verstecken sie diese häufig zuerst hinter einer Flagge. Benutzer müssen sich explizit für die Funktion anmelden, um sie verwenden zu können. Dies gibt den Anbietern eine kleine Anzahl von Benutzern, mit denen sie "experimentieren" können. In Chrome finden Sie die Flags auf der Seite chrome: // flags .

Die Meldung besagt also, dass diese Funktion in Chrome nur aktiv ist, wenn Sie sie aktivieren es. Wenn Sie sich die Mozilla-Seite für diese Direktive ansehen, sollte sie ohne Flag von Chrome 54 und höher aktiviert sein. Firefox benötigt jedoch weiterhin ein Flag, und IE / Edge implementiert es überhaupt nicht.

Mit anderen Worten, die CSP-Direktive require-sri-for bietet Schutz für einige von Ihre Benutzer, aber nicht alle. Wie Sie selbst betonen, ist es jedoch sinnlos, SRI für ohnehin verbotene Skripte zu verlangen, wenn Sie script-src 'none' haben.

Danke für deine Antwort.Es hat nicht darauf geklickt, dass es sich um ein Chrome-Flag handelt, da es, wie in der Dokumentation angegeben, in Chrome seit Version 54 unterstützt wird.Ich habe dies jedoch sowohl in den neuesten Versionen von Chrome als auch in Chromium getestet. Die Warnung wird weiterhin angezeigt, und ich kann kein Flag in "chrome: // flags" lokalisieren, das die Unterstützung von "require-sri-for" ermöglicht.Wenn man sich online umschaut, scheint es, dass es sich um einen bekannten Fehler handelt und dass es nicht möglich ist, ihn zu aktivieren, und es scheint vorerst keinen Fortschritt zu geben.Irgendeine Idee, warum die Dokumente sagen, dass es seit Chrome 54 unterstützt wird?


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...