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 Kommandoopen, 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.