Zur Zeit setze ich 0777
auf alle Verzeichnisse und Dateien.
Allerdings habe ich Angst davor, von anderen zugegriffen zu werden.
Protokolldateien und alle Controller, Modelle, Ansichten und die Dateien in der Konfiguration werden auf 0777
Im Allgemeinen, wie sollen sie eingestellt werden?
Sie sollten definitiv 0777
nicht für Ihre Dateiberechtigungen verwenden. Dadurch können Sie leichter Schwachstellen entdecken.
Im Allgemeinen folgen Sie diesem Prinzip:
Verwenden Sie für Ordner 0755
, was rwxr-xr-x
entspricht. Die Ausführungsberechtigung ermöglicht das Anzeigen von Ordnerinhalten.
find / your / rails / dir -type d -exec chmod 755 {} +
Verwenden Sie für ausgeführte Skripte auch 0755
. Dies ermöglicht jedem, die Skripte auszuführen, aber keine Änderungen daran vorzunehmen (schreiben).
Verwenden Sie für alle anderen Dateien 0644
, was rw-r--r--
entspricht. Auf diese Weise kann jeder die Datei lesen, der Eigentümer kann in die Datei schreiben und niemand kann die Datei ausführen. Dies verhindert unter anderem, dass schädliche Skripts hochgeladen und ausgeführt werden.
find / your / rails / dir -type f -exec chmod 644 {} +
Optional können Dateien mit Kennwörtern restriktivere Berechtigungen enthalten, insbesondere config/database.yml
oder alle Dateien mit Kennwörtern für Mail-Dienste (Mandrill, Sendgrid, Poststempel), Amazon S3-Buckets oder Redis-Verbindungen. Für diese Dateien können Sie 0600
verwenden.
In einer Produktionsumgebung sollte Ihre Rails-App als derselbe Benutzer (nicht als root) ausgeführt werden, der all diese Dateien besitzt. Dies wird am einfachsten erreicht, indem Passagier , Einhorn oder Ausführen eines Webservers wie Mongrel oder Webrick als lokaler Benutzer, der auf einem Port wie localhost:3000
horcht und Apache oder Nginx Reverseproxy für localhost:3000
hat.
Tags und Links ruby-on-rails-3 ruby-on-rails