Scripting für Cloud-Sessions einschränken

Produktlinien: Expert
Module: Leistung & CRM
Erstellt: 28.02.2017, Änderung:
Ab Version 6.2.0.11 erlaubte Module hinzugefügt.
Mehr ansehen

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.

Python Sandbox

Import

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:

built-in Whitelist

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']