Der abgesicherte Tcl-Interpreter

Tcl-Skripte werden in einem Interpreter ausgeführt. Die Skriptsprache verfügt über einen sicheren Interpreter, in dem jeglicher Zugriff auf das System gesperrt ist. Damit wird die Gefahr einer Kompromittierung des Server-Systems ausgeschlossen.

Skripte, die über das GUI oder die XML-Schnittstelle eingepflegt werden können, werden stets im sicheren Interpreter ausgeführt. Dies betrifft die folgenden Checks und Funktionen:

  • Wertzuweisungsfunktion (callback) und Wertanzeigefunktion (displayValueCallback) bei Feldern.
  • Contentzuweisungsfunktion (recordSetCallback). Hier steht (zusätzlich) das Kommando open, beschränkt auf die übergebenen Blob-Dateien, zur Verfügung.
  • Workflowzuweisungsfunktion (workflowModification)
  • Vollständigkeitscheck (completionCheck)

Umgekehrt gilt, dass sämtliche Routinen, die Schreibzugriff auf Dateien benötigen, nicht im sicheren Interpreter, sondern im Standard-Interpreter ausgeführt werden:

  • Die Linkfunktion (linkCallback)
  • Die Post-Action-Funktion (notificationCmd)
  • SystemExecute-Prozeduren
  • Formatierungsprozeduren für Feldwerte und Links (dynamicLinkFormatter)
  • generateThumbnail
  • Benutzermanager-Funktionen (usermanAPI)
  • Alle beim Server-Start gelesenen Tcl-Dateien

Die zu diesen Systemaufrufen gehörenden Prozeduren sind teilweise auch im sicheren Interpreter verfügbar. Für Prozeduren, die durch kundenspezifische Befehle aufgerufen werden, ist dies zwingend, für Benutzermanager-Funktionen sinnvoll.

Tcl-Prozeduren können mit dem Befehl safeInterp alias serverProc clientProc im sicheren Interpreter registriert werden.