Inhaltsverzeichnis
Vorwort:
Standardrichtlinieneinschränkung
Heim Web-Frontend H5-Tutorial Content Security Policy (CSP) in HTML5

Content Security Policy (CSP) in HTML5

Oct 07, 2017 am 11:40 AM
h5 html5 策略

Vorwort:

Cordova不支持内联事件,所以点击事件必须提取到js里面.
以下是从官网摘抄下来,希望对您有所帮助
Nach dem Login kopieren

Um eine große Anzahl potenzieller Cross-Site-Scripting-Probleme zu lindern, hat das Chrome-Erweiterungssystem das allgemeine Konzept der Content Security Policy (CSP) integriert. Dadurch werden einige ziemlich strenge Richtlinien eingeführt, die Erweiterungen standardmäßig sicherer machen und Ihnen die Möglichkeit geben, Regeln zu erstellen und durchzusetzen, die die Arten von Inhalten regeln, die von Erweiterungen und Anwendungen geladen und ausgeführt werden können.

Im Allgemeinen fungiert CSP als Hacking-/Whitelisting-Mechanismus zum Erweitern von Ressourcen, die ein Programm lädt oder ausführt. Indem Sie eine sinnvolle Richtlinie für Ihre Erweiterung definieren, können Sie die von Ihrer Erweiterung benötigten Ressourcen sorgfältig abwägen und den Browser bitten, sicherzustellen, dass Ihre Erweiterung nur auf diese Ressourcen zugreifen kann. Diese Richtlinien bieten Sicherheit, die über die von Ihrer Erweiterung angeforderten Hostberechtigungen hinausgeht. Sie stellen eine zusätzliche Schutzebene dar und stellen keinen Ersatz dar.

Im Web werden solche Richtlinien durch HTTP-Header oder -Elemente definiert. Auch im Erweiterungssystem von Chrome gibt es keinen geeigneten Mechanismus. Stattdessen wird die Richtlinie einer Erweiterung über die Datei manifest.json der Erweiterung definiert, die wie folgt aussieht:

{ 
   … 
   “content_security_policy”:“[POLICY STRING GOES HERE]” 
   …
}
Nach dem Login kopieren

Ausführliche Informationen zur CSP-Syntax finden Sie in der Spezifikation der Content Security Policy und im Abschnitt „Content on HTML5Rocks“. Artikel „Einführung in die Sicherheitspolitik“.

Standardrichtlinieneinschränkung

Manifest_version-Paket nicht definiert hat keine Standardrichtlinie für die Inhaltssicherheit. Diejenigen, die manifest_version 2 wählen, haben die Standard-Inhaltssicherheitsrichtlinie:

script-src'self'; object-src'self'

Diese Richtlinie erhöht die Sicherheit, indem sie Erweiterungen und Anwendungen auf drei Arten einschränkt Eigenschaften:

(1) Auswertung und zugehörige Funktionen sind deaktiviert

Der folgende Code funktioniert nicht:

alert(eval("foo.bar .baz"));

window.setTimeout(“alert(’hi’)”,10); 
 window.setInterval(“alert(’hi’)”,10); 
 new Function(“return foo.bar.baz”);
Nach dem Login kopieren

Die Auswertung einer JavaScript-Zeichenfolge wie dieser ist ein häufiger XSS-Angriffsvektor. Stattdessen sollten Sie Code wie diesen schreiben:

alert(foo && foo.bar && foo.bar.baz); 
window.setTimeout(function(){alert(’hi’);},10); 
window.setInterval(function(){alert(’hi’);},10); 
function(){return foo && foo.bar && foo.bar.baz};
Nach dem Login kopieren

(2) Inline-JavaScript wird nicht ausgeführt

Inline-JavaScript wird nicht ausgeführt. Diese Einschränkung verbietet Inline-Blöcke und Inline-Ereignishandler-Prozeduren (z. B. ).

Die erste Einschränkung eliminiert eine große Anzahl von Cross-Site-Scripting-Angriffen, indem sie verhindert, dass Sie versehentlich Skripte ausführen, die von böswilligen Dritten bereitgestellt werden. Aber es erfordert eine klare Trennung zwischen dem, was Ihr Code schreibt, und dem, was er tut (was Sie auf jeden Fall tun sollten), oder? Ein Beispiel könnte dies verdeutlichen. Sie könnten versuchen, ein Browser-Aktions-Popup als einzelnes popup.html zu schreiben, das Folgendes enthält:

Klicken Sie hier, um es zu sehen!
<!doctype html> 
      My Awesome Popup! 
       function awesome(){ 
         //做某事真棒! 
       }
   function totalAwesome(){
     //做某事真棒!
   }
  函数clickHandler(element){
     setTimeout( “awesome();getherAwesome()” ,1000);
   }
   function main(){
     //初始化工作在这里。
   }
 </ SCRIPT>
Nach dem Login kopieren


Standardrichtlinie lockern

(1) Inline-Skripte

Bis Chrome 45 gab es keine Lockerung der Einschränkungen für die Ausführung von Inline-JavaScript-Mechanismen . Insbesondere das Festlegen einer Skriptrichtlinie, die „unsafe-inline“ enthält, hat keine Auswirkung.

Ab Chrome 46 ist es möglich, Inline-Skripte auf die Whitelist zu setzen, indem der Base64-codierte Hash des Quellcodes in der Richtlinie angegeben wird. Dem Hash muss der verwendete Hashing-Algorithmus (sha256, sha384 oder sha512) vorangestellt werden.

über Beispiele

Das obige ist der detaillierte Inhalt vonContent Security Policy (CSP) in HTML5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles