ruby-on-rails - 我应该如何设置Rails应用程序的权限?

标签 ruby-on-rails ruby-on-rails-3

目前,我将0777设置为所有目录和文件。
但是,我害怕被其他人访问。
日志文件以及所有 Controller ,模型, View 和config中的文件均设置为0777
通常,应该如何设置它们?

  • 日志文件目录及其文件
  • Controller 文件
  • 模型文件
  • 查看详情
  • config目录中的文件
  • 最佳答案

    您绝对不应将0777用作文件权限。这更容易使您面临漏洞。

    通常,请遵循以下原则:

  • 对于文件夹,请使用0755,它等于rwxr-xr-x。执行权限允许查看文件夹内容。

    查找/your/rails/dir -type d -exec chmod 755 {} +
  • 对于已执行的脚本,也请使用0755。这样,任何人都可以执行脚本,但不能对其进行更改(写入)。
  • 对于所有其他文件,请使用0644,它等于rw-r--r--。这样,每个人都可以读取文件,所有者可以写入文件,而没有人可以执行文件。除其他外,这可以防止恶意脚本被上载和执行。

    查找/your/rails/dir -type f -exec chmod 644 {} +
  • (可选)包含密码的文件,您可以考虑使用更多限制性权限,尤其是config/database.yml或包含诸如邮件服务(mandrill,sendgrid,邮戳),Amazon S3存储桶或Redis连接之类的密码的任何文件。对于这些文件,您可以使用0600

  • 在生产环境中,您的rails应用程序应该以拥有所有这些文件的同一用户(不是root)运行。通过使用passengerunicorn或运行Web服务器(例如mongrel或webrick)作为本地用户在诸如localhost:3000的端口上监听,并使Apache或Nginx反向代理到localhost:3000,可以最轻松地完成此操作。

    关于ruby-on-rails - 我应该如何设置Rails应用程序的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889614/

    相关文章:

    ruby-on-rails - 解密设计密码

    ruby-on-rails - Rails 3强制使用特定文本的本地化语言

    ruby-on-rails - Rails - 如何向 url 发出 GET 请求

    ruby-on-rails - 如何使用 Devise 恢复密码 (Ruby on Rails)

    ruby-on-rails - IP地址格式检查

    mysql - Rails 3 - 存储 float 的问题

    ruby-on-rails - Rails - 更新时类型错误 : nil is not a symbol nor a string,

    javascript - AJAX 请求未找到模型 ID

    ruby-on-rails - Make 未被识别为内部或外部命令

    ruby-on-rails-3 - Spork 的 Silence Rails 模式加载