Scripting für Cloud-Sessions einschränken

Option, um das Scripting via Cloud-Clients einzuschränken

Product line

Standard

|

Expert

Operating mode

CLOUD ABO

|

ON-PREMISES

Modules

Services & CRM

Budget & Phases

Purchases

Resource Planning

Business Intelligence

Created: 28.02.2017
Updated: 14.03.2024 | PythonUnsafe Ordner ab Vertec 6.7.0.7 beschrieben.

Um beim Zugriff auf lokale Ressourcen des Cloud Hosts via Cloud Clients gewisse Einschränkungen gewährleisten zu können, gibt es die Restrict Scripting Option, um das Scripting einzuschränken. So können Dateizugriffe und das Importieren von Nicht-Vertec-Modulen verhindert werden.

Im Cloud Abo ist diese Option immer aktiviert und kann nicht ausgeschaltet werden.

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.

Ab Vertec 6.7.0.7 befinden sich die riskanten Module ctypes, win32* (sämtliche Module die mit win32 beginnen), win2kras, winsound und winxpgui im Unterordner PythonUnsafe im Vertec Installationsverzeichnis. Dieser Ordner kann gelöscht werden, falls die Module nicht verwendet werden, um auch die Desktop App besser zu schützen.

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:
    • vtcapp und datetime
    • ab Vertec 6.2.0.8: requests
    • ab Vertec 6.2.0.11: string, re, json, urlparse, email, smtplib, base64
    • ab Vertec 6.3: vtcextensions
    • ab Vertec 6.3.0.2: ziputils
    • ab Vertec 6.3.0.16: difflib, StringIO, textwrap, unicodedata, stringprep, calendar, collections, heapq, bisect, array, decimal, fractions, random, itertools, functools, operator, hashlib, hmac, time, HTMLParser, locale, traceback sowie die Python Package email mit allen ihren Sub-Modulen.
    • ab Vertec 6.4.0.15: zeep

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

Und in Version 6.3.0.16 um die Funktion 'help'.

Bitte wählen Sie Ihren Standort