2016-11-24 9 views
-1

zu laden Ich erstelle eine Web site, die Benutzern erlaubt, ihre Web site für eine bestimmte Menge Zeit am Leben zu lassen. Es funktioniert wie folgt:Benutzern erlauben, Javascript/html/css

  • Benutzer lädt eine ZIP-Datei mit Javascript/html/css/Bild.
  • Filtern der Dateien mithilfe der Whitelist zum Entfernen nicht erlaubter Erweiterungen>
  • Eine neue Subdomäne wird mit einem zufälligen Namen erstellt, der die entpackten Dateien enthält.
  • und der Benutzer kann nun sein Design anzeigen.

also, welche sicherheitsprobleme können sich ergeben, upload von javascript/html/css dateien?

+0

Versuchen Sie nicht, dies selbst zu implementieren. Verwenden Sie ein Content Management System. – Barmar

Antwort

0

Alle Dateien sind potenzielle Sicherheitslücken. JavaScript-, HTML- und CSS-Dateien können gefährlich sein, da sie alle JavaScript-Code enthalten können. Wenn Sie Personen erlauben, Dateien mit JavaScript-Code hochzuladen, können Sie Code hochladen, der von den Browsern der Besucher ausgeführt wird.

In modernen Browsern ist das Einbetten von JavaScript-Code in CSS-Dateien kein echtes Problem. Wenn Sie jedoch ältere Browser wie IE6 oder 7 unterstützen, sind die CSS-Dateien ebenfalls eine potenzielle Sicherheitslücke.

Eine von Angreifern häufig verwendete Technik ist Cross-Site Scripting oder XSS. Grundsätzlich injizieren Angreifer JavaScript-Code auf einer Website, indem sie ein Formular oder eine Low-Security-API verwenden, mit der Besucher Informationen an die Website senden können. Dieser JavaScript-Code kann dann von allen anderen Benutzern ausgeführt werden und könnte vertrauliche Informationen stehlen. Hier sind einige weitere Informationen: https://en.wikipedia.org/wiki/Cross-site_scripting

Jetzt, da alle Websites in verschiedenen Subdomains liegen, haben sie tatsächlich unterschiedliche Ursprünge, und so verhindert der Browser, dass das JavaScript einer Website mit den Cookies einer anderen Website herumhantiert. Dies ist die gleiche Herkunft Politik genannt, und seine näher beschrieben hier: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

Do bedenken, dass eines dieser bösartigen JavaScript-Dateien ihren Ursprung, indem Sie den folgenden Code ändern könnte:

document.domain = "yourdomain.com"; 

Und das könnte eine potenzielle Bedrohung sein. Die Richtlinie "Gleiche Herkunft" weist in einigen Browsern, z. B. Internet Explorer, ein anderes Verhalten auf. Es ist ideal, dass Sie die Dokumentation für die gängigsten Webbrowser lesen.

+0

so ist die einzige Bedrohung XSS richtig? – KendoClaw

+0

Es ist die gefährlichste, die in den Sinn kommt. Eine Sache, die ich empfehlen würde, ist, dass Sie die Dateien nicht per Erweiterung überprüfen, sondern tatsächlich, indem Sie die Datei analysieren und sehen, was sie tatsächlich ist oder ob sie eine Validierung besteht. Wenn ein guter CSS-Parser eine CSS-Datei nicht parsen kann, handelt es sich nicht um CSS. Wenn ein JavaScript-Parser eine .js-Datei nicht analysieren kann, handelt es sich nicht um JavaScript. Dies gibt Ihnen einen zuverlässigeren Filter für gültige Dateien. –

Verwandte Themen