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

How to hide your library code in OpenCPU

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

如果您使用的是 Apache,您可以编写规则来阻止除 POST 之外的任何 HTTP 请求到 /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 访问它。

如果您对任何您认为可能存在的问题发表评论,我希望如此。