Was ist Sandboxen?


118

Ich habe den Wikipedia-Artikel gelesen , bin mir aber nicht sicher, was er bedeutet und wie ähnlich er der Versionskontrolle ist .

Es wäre hilfreich, wenn jemand in sehr einfachen Worten erklären könnte, was Sandboxing ist.

Antworten:


266

Geben Sie hier die Bildbeschreibung ein

Ein Sandkasten oder Sandkasten ist ein niedriger, breiter Behälter oder eine flache Vertiefung, die mit Sand gefüllt ist und in der Kinder spielen können. Viele Hausbesitzer mit Kindern bauen Sandgruben in ihren Hinterhöfen, weil sie im Gegensatz zu vielen Spielgeräten einfach und kostengünstig gebaut werden können. Ein "Sandkasten" kann auch eine Tagebau-Sandmine bezeichnen.

Nun, eine Software-Sandbox unterscheidet sich nicht von einer Sandbox, die für ein Kind zum Spielen entwickelt wurde. Indem wir einem Kind einen Sandkasten zur Verfügung stellen, simulieren wir die Umgebung eines echten Spielplatzes (mit anderen Worten isolated environment), jedoch mit Einschränkungen, was ein Kind tun kann. Weil wir nicht wollen, dass sich ein Kind ansteckt oder dass es anderen Ärger macht. :) Was auch immer der Grund ist, wir wollen nur einschränken, wofür das Kind tun kann Security Reasons.

Wenn wir nun zu unserer Software-Sandbox kommen, lassen wir jede Software (Kind) ausführen (spielen), aber mit einigen Einschränkungen, was sie (er) tun kann. Wir können uns sicher fühlen , was die ausführende Software leisten kann.

Sie haben Antivirensoftware gesehen und verwendet. Richtig? Es ist auch eine Art Sandkasten. Es schränkt ein, was jedes Programm tun kann. Wenn eine böswillige Aktivität erkannt wird, wird sie angehalten und der Benutzer darüber informiert, dass "diese Anwendung versucht, auf so und so Ressourcen zuzugreifen. Möchten Sie dies zulassen?".

Laden Sie ein Programm mit dem Namen herunter sandboxie und erleben Sie die Erfahrung einer Sandbox. Mit diesem Programm können Sie jedes Programm in einer kontrollierten Umgebung ausführen.

Die roten Pfeile zeigen Änderungen an, die von einem laufenden Programm auf Ihren Computer übertragen werden. Das Feld mit der Bezeichnung Festplatte (keine Sandbox) zeigt Änderungen durch ein normal laufendes Programm an. Das Feld mit der Bezeichnung Festplatte (mit Sandbox) zeigt Änderungen durch ein Programm an, das unter Sandboxie ausgeführt wird. Die Animation zeigt, dass Sandboxie die Änderungen abfangen und in einer Sandbox isolieren kann, die als gelbes Rechteck dargestellt wird. Es zeigt auch, dass das Gruppieren der Änderungen das Löschen aller Änderungen auf einmal erleichtert.

Geben Sie hier die Bildbeschreibung ein

Aus Sicht eines Programmierers beschränkt Sandbox nun die API, die für die Anwendung zulässig ist. Im Antivirenbeispiel beschränken wir den Systemaufruf (Betriebssystem-API).

Ein weiteres Beispiel wären Online-Codierungsarenen wie Topcoder. Sie senden einen Code (Programm), der jedoch auf dem Server ausgeführt wird. Für diesafety Server sollten sie die Zugriffsebene der API des Programms einschränken. Mit anderen Worten, sie müssen eine Sandbox erstellen und Ihr Programm darin ausführen.

Wenn Sie über ein geeignetes Sandox verfügen, können Sie sogar eine mit Viren infizierte Datei ausführen und alle böswilligen Aktivitäten des Virus stoppen und selbst sehen, was er versucht. In der Tat wird dies der erste Schritt eines Antivirus-Forschers sein.


31

Diese Definition von Sandboxing bedeutet im Wesentlichen Testumgebungen (Entwicklerintegration, Qualitätssicherung, Phase usw.). Diese Testumgebungen ahmen die Produktion nach, teilen jedoch keine der Produktionsressourcen. Sie verfügen über vollständig separate Server, Warteschlangen, Datenbanken und andere Ressourcen.

Häufiger habe ich gesehen, dass sich Sandboxing auf so etwas wie eine virtuelle Maschine bezieht - das Isolieren von laufendem Code auf einer Maschine, damit das Basissystem nicht beeinträchtigt wird.


1
Okay, Sandboxing besteht im Grunde darin, eine Software in einer kontrollierten Umgebung zu testen, bevor sie tatsächlich verwendet wird. richtig? Übrigens, warum heißt es "Sandboxing"?
Lazer

>> Warum heißt es 'Sandboxing' @eSKay, weil Leute mit Software / Hardware wie Kinder in ihren Sandboxen spielen ( thefreedictionary.com/sandbox - Definition # 3).
Darmen Amanbayev

Was ist der Unterschied zwischen Sandbox- und Staging-Umgebungen?
Mohammad Jamal Dashtaki

15

Ein konkretes Beispiel: Angenommen, Sie haben eine Anwendung, die sich mit Geldtransfers befasst. In der Produktionsumgebung wird echtes Geld ausgetauscht. In der Sandbox-Umgebung läuft alles genau gleich, aber das Geld ist virtuell. Es ist zu Testzwecken.

Paypal bietet zum Beispiel eine solche Sandbox-Umgebung.


6

Für die "Sandbox" in der Softwareentwicklung bedeutet dies, sich zu entwickeln, ohne andere isoliert zu stören.

Dies ist der Versionskontrolle nicht ähnlich. Einige Methoden zur Versionskontrolle (als Verzweigung) können jedoch beim Erstellen von Sandboxen hilfreich sein.


0

Häufiger verweisen wir auf den anderen Sandkasten .


In jedem Fall bedeutet Sandbox oft eine isolierte Umgebung . Sie können in der Sandbox alles tun, was Sie möchten, aber der Effekt breitet sich nicht außerhalb der Sandbox aus. In der Softwareentwicklung bedeutet dies beispielsweise, dass Sie sich nicht mit Dingen herumschlagen müssen /usr/lib, um Ihre Bibliothek usw. zu testen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.