10

目前我设置0777为所有目录和文件。
但是,我害怕被别人访问。
日志文件和所有控制器、模型、视图和 config 中的文件都设置为0777

一般来说,它们应该如何设置?

  • 日志文件目录及其文件
  • 控制器文件
  • 模型文件
  • 查看文件
  • config目录下的文件
4

1 回答 1

14

你绝对不应该使用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)身份运行。这很容易通过使用乘客独角兽或运行 Web 服务器(如 mongrel 或 webrick)作为本地用户监听端口localhost:3000,并使用 Apache 或 Nginx 反向代理localhost:3000

于 2013-02-15T07:40:42.430 回答