[Lua] Einzelne Funktionen aus tables/Klassen verbieten?

multimolti

Erfahrenes Mitglied
Hallo!

Ich arbeite grade an einer sicheren "Sandbox" für Lua, wo also 3rd-party Skripte ausgeführt werden können, ohne dass was kaputt gehen kann. Das funktioniert bisher wunderbar, das Skript läuft in einer eigenen Umgebung, jetzt will ich der Umgebung nur die wichtigsten Funktionen und so zur Verfügung stellen.
Hier gibt es eine Liste mit allen sicheren und unsicheren Funktionen, die ich übernehmen wollte. Bei den meisten geht das recht einfach, nur z.B. bei "string" habe ich Probleme, weil generell ja alle Funktionen OK sind, nur "string.dump" eben nicht. Ich wollte das so machen:

Code:
local env = {     
    -- safe modules
    assert = assert;
    error = error;
    ...
    pcall = pcall;
    string = string; -- unsafe
        string.dump = nil;
    ...
}
Allerdings bekomme ich einen Fehler:
'}' expected (to close '{' at line 31) near '='

Wie macht man das besser? Danke für die Hilfe!
 
Zurück