API: Sandbox-Modell

Die Roll20-API funktioniert, indem für jede Kampagne eine spezielle serverseitige virtuelle Maschine betrieben wird. Dies stellt einen Sandkasten bereit, in dem deine angepassten Skripte ausgeführt werden können, ohne dass die Gefahr besteht, dass sie die Kampagnen anderer Benutzer beeinträchtigen. Außerdem bietet das eine zusätzliche Sicherheitsschicht, die einen böswilligen SL daran hindert, Skripte zu schreiben, die schlimme Dinge bewirken könnten, wie zum Beispiel auf den Computer eines Spielers zuzugreifen oder dessen Computer in einer Endlosschleife zum Stillstand zu bringen.


Wie es funktioniert

Wenn du neugierig auf die technischen Details bist, wie die API funktioniert, hier ist ein kurzes Diagramm:

Vom Benutzer geschriebene Skripte ===> API-Server ===> Kampagnen-Sandbox <===> Echtzeit-Synchronisierungsserver

Der Roll20-API-Server überwacht die Aktivität Ihrer Kampagne. Wenn es erkennt, dass Leute deine Kampagne aufnehmen, richtet es einen Sandkasten für deine Kampagne ein und lädt alle Mod (API)-Skripte, die du in den Sandkasten geschrieben hast, hoch. Die Sandbox kann Daten direkt an den Echtzeit-Synchronisierungsserver empfangen und senden, wodurch es auf Ereignisse reagieren und Änderungen am Spiel vornehmen kann.


Einschränkungen durch normales Javascript

Obwohl Roll20-Skripte Javascript sind, gibt es einige Einschränkungen, die du beachten solltest, wenn du bereits in der Programmierung von Javascript für Webseiten erfahren bist. Roll20-Skripte werden in einer separaten Sandbox von der Roll20-Site ausgeführt. Dies bietet eine zusätzliche Trennungs- und Sicherheitsebene für unser System und Ihre Spieler. Diese Sandbox bedeutet Folgendes:

  • Sie können keine HTTP-Anfragen (AJAX) stellen.
  • Sie können keine externen Skripte oder Bibliotheken (z. B. jQuery) laden.
  • Die Umgebung ist Javascript, aber es ist nicht das gleiche wie in einem Browser, also gibt es kein DOM, keine Seitenelemente, CSS,document,window usw.
 
War dieser Beitrag hilfreich?
38 von 53 fanden dies hilfreich