Wie funktioniert die Sandbox von Google App Engine? Was müsste ich tun, um meine eigene Sandbox zu erstellen (um meinen Kunden zu ermöglichen, ihre Apps auf meiner Engine auszuführen, ohne ihnen die Möglichkeit zu geben, mein Festplattenlaufwerk zu formatieren)? Ist es nur Klassenlader Magie, Byte-Manipulation oder etwas?Wie funktioniert Google App Engine Sandbox?
Antwort
In der Java-Fall, ich denke, es ist meist durch die Einschränkung der verfügbaren Bibliotheken getan. Da Java kein Zeigerkonzept hat und Sie nativ kompilierten Code (nur JVM-Bytecode) nicht hochladen können, können Sie nicht aus der Sandbox ausbrechen. Fügen Sie eine enge Prozessplanung hinzu, und Sie sind fertig!
Ich denke, der schwierigste Teil ist, die Bibliotheken auszuwählen, um es nützlich zu machen, während sie sicher bleiben.
Im Python-Fall mussten sie die VM selbst modifizieren, da sie nicht sicherheitsbewusst konzipiert war. Zum Glück haben sie Guido selbst, um es zu tun.
Sie benötigen wahrscheinlich eine Kombination aus einem restriktiven Classloader und einem gründlichen Verständnis der . Sie würden wahrscheinlich Ihre JVM mit einem sehr strengen SecurityManager ausführen.
Wichtiger Hinweis - Mit dem SecurityManager können Sie die Heap-Speicherauslastung oder CPU-Auslastung NICHT einschränken. Sie haben keine andere Wahl, als für jede Aufgabe/jedes Skript separate Prozesse zu erzeugen. – Zorkus
sicher erlauben meinen Kunden ihre Anwendungen auf meinem Motor laufen zu lassen, ohne ihnen die Möglichkeit zu geben meinem Plattenlaufwerk
leicht die Java Security Manager erreicht wird Dies kann zu formatieren. Ein Beispiel finden Sie unter this.
Es kann erreicht werden, aber nicht leicht, Selbst mit 'SecurityManager' ist es eine ziemliche Aufgabe. – Gautam
- 1. Google App Engine-Versionsnummern?
- 2. Google App Engine - Autoinkrement
- 3. App Engine + Google Dokumente
- 4. Google App Engine-Problem
- 5. Google App Engine & Google Storage
- 6. Google App Engine Projekthierarchie
- 7. Wie schnell ist Google App Engine?
- 8. Google App Engine-Datenbankinkonsistenz
- 9. Google App Engine-Umleitungsproblem
- 10. Google App Engine APNS
- 11. Google-App-Engine NDB
- 12. Google App Engine + Validierung
- 13. Google App Engine & CDN
- 14. Google App Engine-Kompatibilitätsschicht
- 15. Google App Engine-Anforderungsstatus
- 16. Google App Engine-Datenspeichercodierung?
- 17. Google App Engine Entitätsgruppen
- 18. Google App Engine: get_or_create()?
- 19. Google App Engine phpBB
- 20. Google App Engine
- 21. Google App Engine DeobfuscatorBuilder
- 22. Google App Engine ThreadSafe
- 23. Wie funktioniert der Google App Engine-Benutzerdienst intern?
- 24. OpenID für Google App Engine
- 25. Google App-Engine Python-Download-Datei
- 26. Google App Engine URL-Verarbeitung
- 27. Google App-Engine Hexadezimal-Dekodierungsproblem
- 28. Wie kompiliert Google App Engine Java vor?
- 29. Google App Engine-Datastore-Integrationstest
- 30. Vorlagen-Engine für Google App Engine
Ich entfernte Gas-Tag, weil ich glaube nicht, dass es für Google Application Sandbox steht, und ich glaube nicht, dass Gnu Assembler zu dieser Frage verwandt ist. –
Sorry, ich habe mich etwas vertippt, ich habe diese Frage mit einem tastaturlosen tragbaren Gerät erstellt. – Shahbaz