3 Stimmen

Sicherheitsimplikationen von Multithreading-Javascript

Durchlesen diese Frage auf Multi-Thread-Javascript, ich wunderte mich, wenn es keine Auswirkungen auf die Sicherheit bei der Ermöglichung von Javascript, um mehrere Threads zu erzeugen sein würde. Besteht zum Beispiel die Gefahr, dass ein bösartiges Skript wiederholt einen Thread nach dem anderen erzeugt, um zu versuchen, das Betriebssystem oder den Interpreter zu überwältigen und den Eintritt in das "Land des undefinierten Verhaltens" auszulösen, oder ist das so gut wie kein Problem? Gibt es noch andere Möglichkeiten, wie ein Angriff eine hypothetische Implementierung von Javascript, die Threads unterstützt, ausnutzen könnte, gegen die eine Implementierung ohne Threads immun wäre?

Aktualisierung: Beachten Sie, dass das Sperren eines Browsers nicht dasselbe ist wie das Erstellen eines Exploits für undefiniertes Verhalten.

2voto

Nathaniel Reinhart Punkte 1143

Nein, mehrere Threads würden bei einer perfekten Implementierung keine zusätzlichen Sicherheitsprobleme verursachen. Threaded Javascript würde die Komplexität des Javascript-Interpreters erhöhen, was die Wahrscheinlichkeit eines ausnutzbaren Fehlers erhöht. Aber Threads allein werden keine zusätzlichen Sicherheitsprobleme verursachen.

Threads sind nicht in Javascript vorhanden, weil "Threads Suck" - lesen Sie mehr von der Sprache Designer ( http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html )

1voto

Shog9 Punkte 151504

Nun, man kann bereits einen Browser sperren und ernsthaft ein System mit schlecht behandeltem JS verlangsamen. Aufgeklärte Browser haben Kontrollen für diese Art von Dingen implementiert und stoppen sie, bevor sie aus dem Ruder laufen.

Ich würde davon ausgehen, dass die Themen in ähnlicher Weise behandelt werden.


Vielleicht könnten Sie dann erklären, was Sie mit "undefiniertem Verhalten" meinen? Ein Interpreter, der einem nicht vertrauenswürdigen Skript erlaubt direkt die Anzahl der OS-nativen Threads, die ausgeführt werden, zu kontrollieren, wäre unglaublich naiv - ich weiß nicht, wie Gears die Dinge regelt, aber da sich die API um Worker s in WorkerPool s, wäre ich sehr überrascht, wenn sie die Gesamtzahl der verwendeten nativen Threads nicht auf eine sehr niedrige Zahl begrenzen würden.

0voto

UnkwnTech Punkte 83318

Nun, ich denke, dass das einzige große Beispiel für Multithreading-Javascript Googles Chrome ist (WOLLEN SIE ES JETZT FREIGEBEN JEEZ) und wenn ich es verstehe, wird das Javascript nur ein Prozess pro Registerkarte, so dass, es sei denn, es begann Spawning Registerkarten (Popups) würde ich annehmen, dies wäre ein Null-Problem, aber ich denke, dass Google hat, dass unter Wraps sowieso, die laufen alle das Javascript in einer Sandbox sind.

0voto

matt b Punkte 135206

Auch hier müssen wir unterscheiden zwischen 1) Multithreading-Unterstützung in der Sprache (die meines Erachtens nicht ernsthaft diskutiert wird) und 2) Verwendung mehrerer Threads in der JavaScript-Engine/im Interpreter im Browser.

Zu Nr. 2: Ich kann nicht erkennen, inwiefern dies der Engine/dem Interpreter wirklich zusätzliche Sicherheitsprobleme bereiten könnte, es sei denn, es gibt Mängel in der Implementierung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X