Защитить Python intepreter?

Когда Вы throw ex, Вы по существу выдаете новое исключение и пропустите информацию об исходном отслеживании стека. throw предпочтительный метод.

6
задан Kara 25 June 2013 в 23:57
поделиться

8 ответов

Вы можете запустить Jython на JVM с помощью SecurityManager, который позволяет указывать разрешенные / запрещенные операции.

2
ответ дан 9 December 2019 в 22:36
поделиться

I know of no such "secure interpreter" that is openly distributed (obviously Google has one that it uses in App Engine, though with somewhat different restrictions from those you desire, e.g., certain files can be opened, in a read-only way). There are some claims for it, though, e.g. here, though I can't verify them. Pypy's Python in a Sandbox is probably the top one worth trying, given the high quality and reputation of pypy's development team (they're VERY unlikely to make unsubstantiated claims).

7
ответ дан 9 December 2019 в 22:36
поделиться

Вам не нужен модифицированный Python, чтобы ограничить выполнение в определенном смысле. Достаточно взглянуть на codepad.org , pastebin, куда вы можете вставить код (на Python и других языках), запустить его и отобразить результат. Код работает в очень ограниченной среде, но это всего лишь конфигурация ОС. ( Пример пасты )

2
ответ дан 9 December 2019 в 22:36
поделиться

Вы можете запустить IronPython внутри домена приложения .NET с ограниченными привилегиями.

Это определенно будет работать в Windows и, возможно / вероятно, в Mono (я не могу точно сказать).

Вам нужно будет написать небольшую программу, которая встраивает интерпретатор IronPython и передает ему сценарий.

Первый пример в главе о встраивании в книге Iron Python in Action показывает, как написать такой пусковая установка.

Я не помню, касается ли она доменов приложений, но эта информация должна быть где-то в Интернете.

1
ответ дан 9 December 2019 в 22:36
поделиться

Я учусь на первом курсе, и на первом курсе нас учили питону. У нас были такие вещи, которые назывались «CodeLabs», которые нужно было отправлять периодически. Он работает, задавая вопрос и прося студента ввести свой ответ в текстовое поле, запускать этот код в некоторых тестовых примерах и проверять их возвращаемые значения

. Однажды веб-сайт codelabs (turingscraft.com) стал недоступен, потому что кто-то решил для запуска бесконечного цикла while и вызова внутри него os.fork ().

Очевидно, это проблема администраторов turingscraft.com. Однако позже они нашли способ ограничить доступ к таким командам для студентов.

На вашем месте я бы поискал информацию об их сайте. Возможно, они опубликовали какую-то информацию об этом и о том, как это исправить

1
ответ дан 9 December 2019 в 22:36
поделиться

Вы всегда можете обратиться к исходному коду и создать свой собственный вариант Python. Если он понадобится достаточному количеству людей, не будет времени, чтобы он запустился.

0
ответ дан 9 December 2019 в 22:36
поделиться

В последнее время я играл с этим. Мои требования включают Python 3.x, который немедленно снимает такие решения, как Jython и IronPython. В любом случае, я бы не решился пойти по этому пути, поскольку я никогда не доверял виртуальным машинам на языке пользовательского режима.

В таком случае, для моих целей лучшим решением на данный момент является изъятие этого из рук интерпретатора. полностью и запускать в сильно заблокированном контейнере (OpenVZ или аналогичный). Однако это решает проблему (хотя и не является кувалдой полной виртуализации) и может оказаться нежизнеспособным, если вам придется запускать действительно огромное количество изолированных интерпретаторов.

Однако есть один положительный момент, потому что он не полагается на безопасность какого-либо конкретного интерпретатора, вы можете использовать любой произвольный язык в среде - вы не

-1
ответ дан 9 December 2019 в 22:36
поделиться

Разве безопасность не больше работа операционной системы ?

Я имею в виду создание пользователя с ограниченным доступом к файлам и тому подобное. Тогда пусть vm будет запущен только с этими правами.

Или, может быть, я говорю ерунду. Я не сисадмин и не эксперт по безопасности, но я склонен делать вещи с инструментами, которые для этого созданы.

-1
ответ дан 9 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: