从拥有代码库的用户运行Ruby HTTP服务器是否安全?

时间:2018-08-27 09:40:36

标签: ruby-on-rails ruby httpserver application-server

例如,在基于PHP的应用程序中,建议从拥有代码库的用户之外的其他用户运行PHP-FPM,这样,如果有人从网络上窃取您的应用程序,则将无法向该代码库写入任何内容(除非公共资产目录)。似乎红宝石应用程序旨在运行同一用户的HTTP服务器(或应用程序/瑞克服务器),例如Unicorn和Puma。 Puma(默认的Rails服务器)甚至没有用于指定用户/组的配置条目。

更新

我期望使用ruby应用程序(与使用PHP-FPM相同)是从默认用户(代码库所有者)运行sudo unicornsudo puma并指定用户/组(例如www-data),因此HTTP服务器将从www-data的根进程和子进程运行主进程。 Puma没有这样的设置,我没有在puma的回购中发现任何相关问题。这让我认为,像这样运行它可能在Ruby生态系统中很常见。我仍然尝试与独角兽一起运行最新的Rails应用程序(5.2.1),但面临另一个问题:rails对bootsnap gem具有依赖性,并且当您运行sudo unicorn -c config.rb时,它会以root身份创建tmp/cache/bootsnap-*目录(在主进程中) )会破坏所有内容,因为从www-data运行的子进程将无法访问它。这让我再次考虑,也许我做错了,可以从代码库所有者运行ruby应用程序,尽管我看不出它与运行PHP-FPM有何不同。

0 个答案:

没有答案