Size: a a a

2021 March 04

AT

Andrey Terekhov in Moscow Python
Peter Sovietov
А вот кто-нибудь пытался сделать песочницу для выполнения небезопасного кода на Питоне? Если да, то чем воспользовались?
Самое простое — eval и ограничить набор возможных операторов)
источник

PS

Peter Sovietov in Moscow Python
Andrey Terekhov
Самое простое — eval и ограничить набор возможных операторов)
Вот. Сразу видно, что Вы не пробовали :)
источник

AT

Andrey Terekhov in Moscow Python
Peter Sovietov
Вот. Сразу видно, что Вы не пробовали :)
Я нет, но такое видел)
источник

PS

Peter Sovietov in Moscow Python
Andrey Terekhov
Я нет, но такое видел)
Оно легко ломается, увы.
источник

AT

Andrey Terekhov in Moscow Python
Вот такое нашёл, но вообще что-то вертится в голове, прям не так давно обсуждали

https://github.com/edx/codejail
источник

N

Nikolay in Moscow Python
Peter Sovietov
А вот кто-нибудь пытался сделать песочницу для выполнения небезопасного кода на Питоне? Если да, то чем воспользовались?
В pypy вроде когда-то была встроенная
источник

N

Nikolay in Moscow Python
Peter Sovietov
Оно легко ломается, увы.
Примерно всё ломается, даже докер :)
источник

PS

Peter Sovietov in Moscow Python
Nikolay
В pypy вроде когда-то была встроенная
Да, это хорошая идея. Я ее даже пытался использовать. Но они старую песочницу забросили, а новую начали делать, а потом как-то энтузиазм поугас. В принципе, можно взять проект с github и его с нуля собрать, но... :)
источник

AT

Andrey Terekhov in Moscow Python
Peter Sovietov
Оно легко ломается, увы.
А можешь поделиться как ее легко сломать? Мне пригодилось бы
источник

N

Nikolay in Moscow Python
Andrey Terekhov
Вот такое нашёл, но вообще что-то вертится в голове, прям не так давно обсуждали

https://github.com/edx/codejail
Или firejail
источник

N

Nikolay in Moscow Python
Andrey Terekhov
А можешь поделиться как ее легко сломать? Мне пригодилось бы
В питоне пара сотен модулей, всё не замокаешь
источник

AT

Andrey Terekhov in Moscow Python
Nikolay
В питоне пара сотен модулей, всё не замокаешь
Там кажется можно передать словарь, в котором будет только явно перечисленные функции
источник

Aa

Anatol alexeev in Moscow Python
подскажите как обычно пишут тесты на ф-и работающие с rabbitmq
источник

PS

Peter Sovietov in Moscow Python
Andrey Terekhov
Вот такое нашёл, но вообще что-то вертится в голове, прям не так давно обсуждали

https://github.com/edx/codejail
Интересно! Я не находил такого. Но тут нужен отдельный инструмент для Linux — AppArmor.
источник

MA

Michael Alekseevich in Moscow Python
источник

AT

Andrey Terekhov in Moscow Python
Andrey Terekhov
Там кажется можно передать словарь, в котором будет только явно перечисленные функции
Точнее globals и locals

eval(expression[, globals[, locals]])
источник

PS

Peter Sovietov in Moscow Python
Andrey Terekhov
А можешь поделиться как ее легко сломать? Мне пригодилось бы
Например так:

().__class__.__base__.__subclasses__()
источник

AT

Andrey Terekhov in Moscow Python
Peter Sovietov
Интересно! Я не находил такого. Но тут нужен отдельный инструмент для Linux — AppArmor.
А нужен именно питон?
источник

PS

Peter Sovietov in Moscow Python
Andrey Terekhov
А нужен именно питон?
Ага, реализация легковесной песочницы.
источник

AT

Andrey Terekhov in Moscow Python
Peter Sovietov
Ага, реализация легковесной песочницы.
Lua не подойдёт?
источник