2016-06-20 7 views
0

Ich möchte in meiner Anwendung einen browserbasierten Code-Editor wie Monaco oder Ace verwenden, um Benutzern das Schreiben von Code im Browser zu ermöglichen, der von anderen Benutzern ausgeführt wird . Sie können sich vorstellen, oder so ähnlich. Ich möchte jedoch keine Cross-Site-Scripting-Schwachstellen aufzeigen. Ich finde nicht viel darüber, wie man diese Tools in einer Anwendung richtig implementiert und XSS verhindert.So erstellen Sie einen XSS-sicheren browserbasierten Code-Editor

Gibt es eine Möglichkeit, das in diesen Tools geschriebene Javascript zu "sandboxieren", wenn es ausgeführt wird? Wie schützen Tools wie JSFiddle, CodePen und Online-Editoren etc. vor bösartigen Skripten? Welche Techniken sollte ich generell verwenden, um XSS-Sicherheitslücken zu vermeiden, wenn ich einen browserbasierten Code-Editor in meiner App verwende?

Antwort

1

In der Regel führen diese Tools das Skript in einer anderen Domäne aus. Daher sind sie (absichtlich) anfällig für Cross-Site-Scripting, aber sie nutzen die gleiche Ursprungsrichtlinie als Sandbox. Das ist der einfachste und einfachste Weg, dies zu tun. Selbst wenn die Editor-Site Logins usw. hat, wird Scripting, das auf dieser Sandbox-Domain läuft, durch die gleiche Ursprungs-Policy vom Zugriff auf Inhalte in der Haupt-Domain blockiert, und daher ist das XSS ziemlich nutzlos.