Как заблокировать весь сетевой доступ для скрипта? - PullRequest
4 голосов
/ 21 октября 2011

Предположим, у меня есть скрипт, написанный на Python или Ruby, или программа, написанная на C. Как я могу убедиться, что у скрипта нет доступа к сетевым возможностям?

Ответы [ 3 ]

5 голосов
/ 21 октября 2011

Вы более или менее дали общий ответ, отметив его «песочницей», потому что это то, что вам нужно, своего рода песочница.На ум приходят следующие вещи: использование JPython или JRuby, которые работают на JVM.В JVM вы можете создать изолированную программную среду, используя файл политики, поэтому никакой код в JVM не может делать то, что вы не разрешаете.

Для кода C это сложнее.Грубым ответом может быть запуск кода C на виртуальной машине без сетевых возможностей.У меня действительно нет более элегантного ответа прямо сейчас.:)

2 голосов
/ 21 октября 2011

Если вы не используете изолированную версию Python (например, PyPy), не существует надежного способа отключить сетевой доступ из самого скрипта. Конечно, вы можете работать под виртуальной машиной с отключенным доступом к сети.

0 голосов
/ 21 октября 2011

Брандмауэры могут блокировать доступ определенных приложений или процессов к сети.ZoneAlarms - хороший инструмент, который я использовал, чтобы делать именно то, что вы хотели в прошлом.Так что это может быть сделано программно, но я не знаю достаточно близко о программировании ОС, чтобы дать какие-либо советы о том, как это сделать.

...