如何在 OpenCPU 中隐藏您的库代码

zol*_*tro 3 apache r http opencpu

如果您使用 OpenCPU,您会注意到任何人都可以访问您的/ocpu/library/[your_library]/R/目录并查看后端应用程序的所有源代码。你怎么能防止这种情况发生?

zol*_*tro 5

如果您使用的是 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>
Run Code Online (Sandbox Code Playgroud)

注意更改[your_library]为您的实际库名称。

您只允许向该地址发送 POST 请求这一事实意味着您将能够执行该代码,但不能获取它。如果你想隐藏你的/info文件以便没有人可以看到你的文档,你可以复制之前的代码,将路由更改为/ocpu/library/[your_library]/info. 您可以对要隐藏的任何路径执行相同的操作。但是,请注意,此技巧不适用于存储在 中的任何内容/data,因为您必须通过 GET 访问它。

我想如果你评论你认为这可能有的任何问题。