Если вы используете OpenCPU, вы заметите, что любой может получить доступ к вашему каталогу /ocpu/library/[your_library]/R/
и увидеть весь исходный код вашего внутреннего приложения. Как вы можете предотвратить это?
Как скрыть код вашей библиотеки в OpenCPU
Ответы (1)
Если вы используете Apache, вы можете написать правило, запрещающее любой HTTP-запрос, кроме POST на адрес /ocpu/library/[your_library]/R/
. Это можно легко сделать, изменив файл /etc/apache2/sites-available/opencpu.conf
. Вам просто нужно добавить следующие строки внутри блока <IfModule mod_R.c>
:
<Location /ocpu/library/[your_library]/R>
SetHandler r-handler
RHandler opencpu:::rapachehandler
Require method POST
SetOutputFilter DEFLATE
SetInputFilter DEFLATE
</Location>
Обратите внимание на изменение [your_library]
на фактическое имя вашей библиотеки.
Тот факт, что вы разрешаете POST-запросы только на этот адрес, означает, что вы сможете выполнить этот код, но не сможете его получить. Если вы хотите скрыть свой файл /info
, чтобы никто не мог увидеть вашу документацию, вы можете скопировать предыдущий код, изменив маршрут на /ocpu/library/[your_library]/info
. Вы можете сделать то же самое с любым путем, который хотите скрыть. Однако обратите внимание, что этот трюк не будет работать с чем-либо, хранящимся в /data
, так как вы должны получить к нему доступ через GET.
Я хотел бы, чтобы вы прокомментировали любые проблемы, которые, по вашему мнению, могут возникнуть.