Как скрыть код вашей библиотеки в OpenCPU

Если вы используете OpenCPU, вы заметите, что любой может получить доступ к вашему каталогу /ocpu/library/[your_library]/R/ и увидеть весь исходный код вашего внутреннего приложения. Как вы можете предотвратить это?


person zolastro    schedule 21.08.2018    source источник


Ответы (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.

Я хотел бы, чтобы вы прокомментировали любые проблемы, которые, по вашему мнению, могут возникнуть.

person zolastro    schedule 21.08.2018