Может ли мой CGI позвонить R? - PullRequest
2 голосов
/ 11 октября 2011

Я знаю чуть больше нуля о R: до вчерашнего дня я не знал, как произнести заклинание .Но я склонен к самоубийству: для моего веб-сайта я думаю о том, чтобы позволить посетителю напечатать в R "программу" (даже если это называется"программой"), а затем, во время отправки, вслепуюзвоню переводчику R из моего CGI.Затем я вернул бы вывод переводчика посетителю.

Имеет ли это смысл?Или это равносильно бесполезному шуму?

Если это выполнимо, каковы подводные камни в этом подходе?Например, каковы проблемы безопасности, если таковые имеются?Можно ли заставить R аварийно завершить работу, убивая мою CGI-программу?Должен ли я очистить код R перед вызовом переводчика?И тому подобное.

Ответы [ 4 ]

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

Вы можете посмотреть на Rweb, который имеет именно такое поведение: http://www.math.montana.edu/Rweb/

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

Поскольку вы можете читать и записывать файлы в R, было бы небезопасно разрешать людям запускать произвольный код R на вашем сервере. Я бы посмотрел, есть ли в R что-то вроде безопасного режима PHP ... Если нет, и если вы являетесь пользователем root, вы можете попробовать запустить R под пользователем none в chroot (вы также должны поместить туда пакеты и библиотеки - для доступа только для чтения, и какой-то временный каталог для доступа к RW).

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

Это просто напрашивается на неприятности, чтобы позволить людям запускать произвольный код R на вашем сервере. Вы можете попробовать запустить его в изолированной тюрьме, но эти вещи можно сломать. Даже в chroot, процесс R может удалять или изменять файлы, или порождать длительный процесс, или загружать файл на ваш сервер, и все виды злобности.

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

вы можете взглянуть на Rserve, который позволяет выполнять сценарии R через интерфейс TCP / IP, доступный в PHP, например, если я не ошибаюсь.

...