[gelöst] .htaccess in sites/default/files einfügen. Welches .htaccess?
am 18.02.2014 - 10:38 Uhr in
Nach einem Core-Update auf Drupal 7. 26 erschien in ../admin/config die Meldung
Ein oder mehrere Probleme der Drupal-Installation wurden festgestellt. Überprüfen Sie den Statusbericht für weitere Informationen.
und in diesem Statusbericht erschien:
Fehler
Public files directory Not fully protected
See http://drupal.org/SA-CORE-2013-003 for information about the recommended .htaccess file which should be added to the sites/default/files directory to help protect against arbitrary code execution.
In meinem sites/default/files directory ist keine .htaccess vorhanden.
Welches .htaccess soll also dort eingefügt werden? Muß das manuell geschehen?
Danke für Eure Hilfe
Albert
- Anmelden oder Registrieren um Kommentare zu schreiben
So lange der Webserver
am 18.02.2014 - 11:23 Uhr
So lange der Webserver Schreibrechte hat, erstellt er sie automatisch, wenn nicht vorhanden. Allerdings überschreibt er auch keine vorhandene, um eigene Modifikationen nicht zu löschen.
Da bei Dir eine .htaccess vorhanden ist, einfach diese löschen. Bei einem FTP-Programm musst du meist einstellen, das solche Dateien angezeigt werden. Beispiel Filezilla http://filezilla-client.de/anleitung/versteckte-dateien-anzeigen.html
.htaccess in /sites/default/files
am 18.02.2014 - 12:04 Uhr
Danke Tobias,
Ich habe also die Anzeige der versteckten Dateien aktiviert und sehe nun, dass in /sites/default/files doch eine .htaccess vorhanden ist. Wurde diese im Zuge des Updates hineingeschrieben? Denn im Kommentar zu der anfangs erwähnten Fehlermeldung steht, dass dieser Bug ab 7.24 (?, jedenfalls eine frühere Version als 7.26) behoben ist.
Herzliche Grüße
Albert
Diese .htaccess gibt es in
am 18.02.2014 - 12:17 Uhr
Diese .htaccess gibt es in Drupal seit vielen Jahren und sorgt dafür das gewisse Sicherheitslücken geschlossen werden. Also einfach löschen und bei dem nächsten Seitenaufruf wird sie neu-erstellt, mit veränderten/ergänzten Anweisungen für den Apache-Server. ;-)
In sites/default/file hat
am 18.02.2014 - 12:24 Uhr
In sites/default/file hat Drupal schon immer eine eigene .htaccess-Datei angelegt. Je nach Provider mußte die auch editiert werden, um die Options auszukommentieren. Wird diese Datei gelöscht, legt Drupal sie, entsprechend der aktuellen Drupal Version, wieder an. Mit Drupal 7.24 hat es eine Erweiterung dieser Datei gegeben, um die Ausführung von Code zu verhindern, der in hochgeladenen Files versteckt ist. Entsprechende Dateien gibt es jetzt auch im Privat-Verzeichnis (falls vorhanden) und im temporären Verzeichnis. Stimmen die nicht mit der aktuellen Version überein (auskommentierte Options sind dabei egal) findet man im Statusbericht eine Warnung. Am einfachsten löscht man dann die existierenden .htaccess-Dateien und klickt einmal unter Konfiguration > Medien > Dateisystem auf "Konfiguration Speichern". Damit werden die .htaccess-Files von Drupal neu angelegt. Notwendiges Editieren der Files muß man dann selbst durchführen. Ist das notwendig und man hat die Options nicht auskommentiert, ist die Seite nicht wieder zu erkennen. Das hat meinen Adrenalinspiegel jedenfalls beim ersten Mal ganz schön in die Höhe getrieben.
Beste Grüße
Werner
neues .htaccess ist friedlich
am 19.02.2014 - 11:49 Uhr
Danke an alle,
Ich habe also entsprechend der Empfehlung von Werner die .htaccess im sites/default/file gelöscht und mit Konfiguration > Medien > Dateisystem auf "Konfiguration Speichern" wieder erstellt. Dieses neue .htaccess sieht nun so aus:
# Turn off all options we don't need.
Options None
Options +FollowSymLinks
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
Die von mir eingangs erwähnte Meldung kommt nun nicht mehr.
Aber was ich nicht verstehe ist:
Notwendiges Editieren der Files muß man dann selbst durchführen. Ist das notwendig und man hat die Options nicht auskommentiert, ist die Seite nicht wieder zu erkennen
Ich arbeite noch an einer Test-Webseite ohne viel Inhalt. Aber php-Code soll dann später schon ausgeführt werden. Gibt es irgendwo eine Dokumentation, damit ich die Funktionen in dieser .htaccess verstehen kann? Dass man mit "#" auskommentieren kann, weiss ich. Was müßte ich also hier auskommentieren, damit einerseits die erwünschte Sicherheit gegeben bleibt, andererseits unerwünschte Effekte ausbleiben?
Herzliche Grüße
Albert
Warum willst du in deinem
am 19.02.2014 - 11:55 Uhr
Warum willst du in deinem Files Ordner PHP ausführen? Dort sollten wirklich nur Dateien wie Bilder, PDF, Videos etc. rein. Quasi die Dinge die man sonst so beim Content einpflegen erstellt und benötigt
@albert Ich hatte das nur
am 19.02.2014 - 12:18 Uhr
@albert
Ich hatte das nur erwähnt, weil bei machen Providern notwendig ist, den .htaccess-File zu editieren. Wenn Du das nicht brauchst, um so besser. Das Ausführen von Code kann in eigenen Modulen und in Drupal Core- oder Contributed-Modulen erfolgen. Es sollte aber nie möglich sein, daß jemand eine als Bild getarnte Code Datei nach files hochlädt und anschließend dort ausführt. Das wäre ein Sicherheitsproblem.
Wenn du keine kriminellen anlocken willst
am 19.02.2014 - 14:44 Uhr
solltest du niemals ermöglichen, dass PHP, sh, java oder sonstige ausführbaren Dateien hochgeladen werden können.
Dafür bist du Master und hast einen (S)FTP-Zugang.
php ausführen, aber nicht versteckt hochladen
am 19.02.2014 - 15:43 Uhr
Danke an alle,
Da habe ich offenbar verwechselt: php ausführen (z.B. in Blöcken mit einem Code, den ich als admin erstellt habe), php hochladen als Drupal-Code (über meinem FTP-Zugang) und hochladen von verstecktem Code durch Redakteure oder Hacker.
Der Sachbearbeiter meines Providers berichtete mir, dass Joomla-Seiten laufend gehackt werden, aber noch nie (zumindest in seinem Bereich) eine Drupal-Seite.
Herzliche Grüße
Albert
php ausführen, aber nicht versteckt hochladen
am 19.02.2014 - 15:48 Uhr
Danke an alle,
Da habe ich offenbar verwechselt: php ausführen (z.B. in pages mit einem Code, den ich als admin erstellt habe), php hochladen als Drupal-Code (über meinem FTP-Zugang) und hochladen von verstecktem Code durch Redakteure oder Hacker.
Der Sachbearbeiter meines Providers berichtete mir, dass Joomla-Seiten laufend gehackt werden, aber noch nie (zumindest in seinem Bereich) eine Drupal-Seite.
Herzliche Grüße
Albert
warum
am 19.02.2014 - 16:24 Uhr
sollen Redakteure PHP-Code schreiben?
Du kannst in einem content_type PHP zulassen, und Usern das Recht geben, dort PHP zu verwenden.
Dies ist allerdings ein riesiges Scheunentor, das du in deine Seite reißt.
Wenn du selbst Lösungen für bestehende Aufgaben erstellen möchtest, sollte dies in Form von Modulen geschehen.
Eingebetteter Code ist nicht wirklich empfehlenswert, aber möglich.
Bei solchen Anforderungen musst du immer fragen: wozu? Was geht mit den bestehenden Modulen nicht? Welche Funktionalität brauchst du?
Wahrscheinlich wirst du sogar eine Lösung im großen Modulkatalog finden.
Kein php-Code von Redakteuren.
am 20.02.2014 - 20:14 Uhr
Ich habe mich wahrscheinlich unklar ausgedrückt. Natürlich bekommt in meinem Wirkungsbereich kein Redakteur oder sonst jemand Rechte für php-Code.
Irgendwann in den letzten Jahren brauchte ich einmal (als admin) in irgend einem Block etwas php.
Aber da nun, wie schon gesagt, die eingangs erwähnte Warnung (nach den empfohlenen Maßnahmen) nicht mehr aufscheint, soll das Thema geschlossen werden.
Herzlichen Dank an alle.
Albert