10

現在0777、すべてのディレクトリとファイルに設定しています。
しかし、他人からアクセスされるのが怖い。
ログ ファイルとすべてのコントローラー、モデル、ビュー、および config 内のファイルが次のように設定されます。0777

一般的に、それらはどのように設定されるべきですか?

  • ログ ファイル ディレクトリとそのファイル
  • コントローラーファイル
  • モデルファイル
  • ファイルを見る
  • config ディレクトリ内のファイル
4

1 に答える 1

14

0777ファイルのアクセス許可には絶対に使用しないでください。これにより、脆弱性にさらされやすくなります。

一般に、次の原則に従います。

  • フォルダの場合、 を使用します。0755これは と同等rwxr-xr-xです。実行権限により、フォルダの内容を表示できます。

    find /your/rails/dir -type d -exec chmod 755 {} +

  • 実行されたスクリプトについては、 も使用します0755。これにより、誰でもスクリプトを実行できますが、スクリプトを変更 (書き込み) することはできません。

  • 他のすべてのファイルについては、0644which equals to を使用しrw-r--r--ます。これにより、誰もがファイルを読み取ることができ、所有者はファイルに書き込むことができ、誰もファイルを実行することはできません。これにより、特に悪意のあるスクリプトがアップロードされて実行されるのを防ぎます。

    find /your/rails/dir -type f -exec chmod 644 {} +

  • config/database.yml必要に応じて、特にメール サービス (mandrill、sendgrid、postmark)、Amazon S3 バケット、または Redis 接続などのパスワードを含むファイルに対して、より制限的なアクセス許可を考慮することができるパスワードを含むファイル。これらのファイルには、0600.

本番環境では、Rails アプリは、これらすべてのファイルを所有する同じユーザー (root ではない) として実行する必要があります。これは、 passengerunicornを使用するか、mongrel や webrick などの Web サーバーを などのポートでリッスンしているローカル ユーザーとして実行し、localhost:3000Apache または Nginx のリバース プロキシを に設定することによって、最も簡単に実現できますlocalhost:3000

于 2013-02-15T07:40:42.430 に答える