作为Rails应用程序安全过程的一部分,我们希望在生产环境中拥有从rails控制台运行的命令的审核日志。
此审核日志应保留在某个位置,例如数据库,S3存储桶中的文件或类似内容。如果它可以写入标准rails日志,那也可能没问题,因为我们已经有办法坚持下去了。
我们目前在Heroku上托管。 Heroku将记录启动控制台的事件,但(a)Heroku不提供从活动控制台运行的日志记录命令的功能,以及(b)我们喜欢更通用的解决方案。
那里有预先存在的解决方案吗?
如果没有,我试图弄清楚如何修补IRB或Rails控制台。
我发现我需要的数据已经在
中Readline::HISTORY
但我正在努力弄清楚在哪里/如何勾选它。
理想情况下,我想将每个条目捕获为(之前?),然后将其发送给解释器,并快速将其保存在某个地方(我们已经拥有Resque,因此这可能是一个很好的解决方案)。 FWIW,在Kernel.exit上发送Readline :: HISTORY的内容似乎可能不可靠。例如,如果SIGKILL停止该过程,则不会保存历史记录内容。