Установить тип отправителя в вызове функции

Открытый исходный код Google App Engine SDK имеет подробную и прочную реализацию механики, чтобы остановить импорт нежелательных модулей (чтобы помочь обнаружить код, пытающийся импортировать модули, которые не доступны в производственных экземплярах из App Engine), хотя даже это может быть подорвано, если код пользователя был злым, а не просто ошибочным (производственные экземпляры, очевидно, имеют больше уровней защиты, например, просто не имея этих модулей вообще; -).

Итак, все зависит от того, насколько глубокой должна быть ваша защита. С одной стороны, вы просто вставляете встроенный файл __import__ в другое место и заменяете его своей функцией, которая выполняет все проверки, которые вы хотите, прежде чем делегировать __builtin__; это может быть 20 строк кода, 30 минут для того, чтобы реализовать и тщательно протестировать ... но это может не защитить вас долго, если кто-то действительно предложит вам me миллион долларов, чтобы проникнуть в вашу систему (и, Разумеется, я не был хорошим парнем с двумя ботинками, я на самом деле AM ;-). С другой стороны, вы развертываете глубокую серию уровней защиты, которые могут занимать тысячи строк и недель работы по внедрению и тестированию - учитывая такой бюджет ресурсов, я мог бы что-то реализовать I (но всегда есть риск, что кто-то ELSE умнее и более опытно написан на Питоне, чем я, конечно!).

Итак, как глубоко вы хотите идти, точнее, как вы можете АФФОРД пойти ...?

0
задан JFS 1 March 2019 в 20:28
поделиться