Um beim Zugriff auf lokale Ressourcen des Cloud Hosts via Cloud Clients gewisse Einschränkungen gewährleisten zu können, gibt es ab Version 6.1.0.9 eine Option, um das Scripting einzuschränken. So können Dateizugriffe und das Importieren von Nicht-Vertec-Modulen verhindert werden.
Die Einstellung im Vertec.ini-File lautet:
[CloudServer] Restrict Scripting=True
Das Restrict Scripting hat folgende Konsequenzen:
- Es laufen keine VB Scripts. Falls ein VB Script ausgeführt wird, wird ein Fehler geworfen.
- Für Python wurde eine Sandbox eingeführt. Im Wesentlichen können nur Module importiert werden, welche auf der Whitelist sind.
Die Einstellung wirkt nur für Cloud-Sessions (Cloud Server). Die Desktop App ist nicht betroffen.
Der Import im Restricted Modus geschieht wie folgt:
- Es wird geprüft, ob ein Import Zugriff ein registriertes Script aus der Vertec-DB betrifft
- Falls nicht, werden als weitere importierbare Module nur folgende erlaubt:
- vtcapp und datetime
- ab Vertec 6.2.0.8: requests
- ab Vertec 6.2.0.11: string, re, json, urlparse, email, smtplib, base64
Die abschliessende Liste der eingebauten, global verfügbaren Symbole (Funktionen und Konstanten) ist im Restricted Modus auf folgende beschränkt:
['False', 'None', 'True', 'abs', 'basestring', 'bool', 'callable', 'chr', 'cmp', 'complex', 'divmod', 'float', 'hash', 'hex', 'id', 'int', 'isinstance', 'issubclass', 'len', 'long', 'oct', 'ord', 'pow', 'range', 'repr', 'round', 'str', 'tuple', 'unichr', 'unicode', 'xrange', 'zip', "apply", "dict", "enumerate", "filter", "getattr", "hasattr", "iter", "list", "map", "max", "min", "sum", "all", "any"]
Diese Liste wurde mit Vertec 6.2.0.2 um folgende Funktionen und Konstanten ergänzt:
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', 'bin', 'buffer', 'bytearray', 'bytes', 'classmethod', 'coerce', 'delattr', 'dir', 'format', 'frozenset', 'locals', 'next', 'object', 'property', 'reduce', 'reload', 'reversed', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'super', 'type']