Size: a a a

2020 May 31

S

Snusmumriken in pro.lua
Глобальное окружение действительно сидит в _G:

local list = {
 "os",
 "table",
 "loadstring",
}

for i, key in ipairs(list) do
 _G[key] = nil
end
источник

AB

Alexander Berezin in pro.lua
Snusmumriken
1. Какая версия lua?
2. Чего ты хочешь?
1) 5.2.4
2) Я хочу получить песочницу, отключив глобальные библиотеки. Если пишу os = nil, тогда работает. Но я хочу это сделать в цикле, чтобы все-все собрать библиотеки
источник

S

Snusmumriken in pro.lua
Ну вот я дал пример. Это то же самое что os = nil.
источник

S

Snusmumriken in pro.lua
Да, как ты изолировал песочницу?
источник

S

Snusmumriken in pro.lua
Ты ей окружение задавал через этот _ENV?
источник

AB

Alexander Berezin in pro.lua
Snusmumriken
Глобальное окружение действительно сидит в _G:

local list = {
 "os",
 "table",
 "loadstring",
}

for i, key in ipairs(list) do
 _G[key] = nil
end
та же ошибка,
Uncaught LuaException: [string "line"]:2: attempt to index global 'os' (a nil value)
источник

CP

Companion Philipp in pro.lua
Ну так ты же затер os :)
источник

S

Snusmumriken in pro.lua
Хотя даже если os затёрт, оно всё равно может сделать _G["os"] = nil, ошибки быть не должно.
источник

CP

Companion Philipp in pro.lua
Покажи весь код, карочи :)
источник

AB

Alexander Berezin in pro.lua
Snusmumriken
Ты ей окружение задавал через этот _ENV?
Нет, ничего не задавал. Мне просто всё что нужно, это отключить глобальные библиотеки, и этого достаточно. Там просто пользовательский код будет выполняться на моём сервере.
источник

S

Snusmumriken in pro.lua
+
источник

S

Snusmumriken in pro.lua
Ну, то есть одна луа-вм на один пользовательский скрипт? Параллелить и запускать кучу инстансов разных скриптов в одной вм не планируется?
источник

AB

Alexander Berezin in pro.lua
Snusmumriken
Ну, то есть одна луа-вм на один пользовательский скрипт? Параллелить и запускать кучу инстансов разных скриптов в одной вм не планируется?
я через php-lua запускаю
источник

S

Snusmumriken in pro.lua
Понял, тогда см пример.
источник

S

Snusmumriken in pro.lua
И код свой скинь
источник

S

Snusmumriken in pro.lua
Не забудь отключить require, load и loadstring.
источник

AB

Alexander Berezin in pro.lua
всё всё работает, разобрался 👍 спасибо

А в чём отличие _ENV от _G ? Может их оба затирать на всякий случай?
источник

CP

Companion Philipp in pro.lua
_ENV емнип появился с 5.2
источник

CP

Companion Philipp in pro.lua
И что конкретн делает, я не помню. В дефолтном виде, вроде, переадресует обращение к глобальным переменным к _G
источник

CP

Companion Philipp in pro.lua
Если не находит поля у себя
источник