Drupal trotz 'Registers Globals on' installieren & benutzen
am 11.02.2009 - 19:03 Uhr in
So manch einer kennt das Problem mit Drupal und der Einstellung 'Register Globals On' und der daraus resultierenden Fehlermeldung.
Auch ich war heute (mal wieder) davon betroffen, und nachdem es für Joomla einen Patch hier für gibt habe ich etwas vergleichbares für Drupal gesucht.
Der erste Schritt, auf welchen ich gestoßen bin, war eine Änderung an der 'system.install' Datei. Dies allein brachte aber leider keinen Erfolg.
Der zweite Schritt, auf welchen ich gestoßen bin, war das löschen der 'HTACCESS' Dateien. Hier tritt aber recht schnell der Fehler auf, dass Drupal nicht mehr auf die settings.php zugreifen kann.
Also habe ich ein bißchen hin- und her probiert und bin zu folgender Lösung gekommen, welche bei mir bisher einwandfrei funktioniert.
Da ich bisher keine ausführlicheren Tests machen konnte garantiere ich nicht für die Sicherheit dieser Methode!
Fehler 1:
Nach jedem Upload einer Datei wird eine neue HTACCESS erstellt. Da durch tritt der 500-Fehler erneut auf, wenn man diese Datei öffnen will. Die einzige Lösung, welche ich bisher dafür habe, ist das erneute löschen der HTACCESS-Datei.
Fehler 2:
Im Backend-Bereich wird die Meldung angezeigt, dass ein oder mehrere Fehler in der Drupal-Installation festgestellt wurden. Dies betrifft die Register Globals, was auch im Statusbericht angezeigt wird. Diese Fehlermeldung schränkt den Betrieb des Backends aber nicht ein.
**********
Schritt 1
Man öffnet die Date system.install (zu finden in '\modules\system\') mit dem Wordpad und kommentiert die Zeilen '55' bis '59' aus. Zur Veranschaulichung hier noch die betreffende Passage. Das auskommentieren der betreffenden Zeilen erfolgt durch das Voransetzen von //.
53 if (!empty($register_globals) && strtolower($register_globals) != 'off') {
54 $requirements['php_register_globals']['description'] = $t('<em>register_globals</em> is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when <em>register_globals</em> is enabled. The PHP manual has instructions for <a href="http://php.net/configuration.changes">how to change configuration settings</a>.');
55 // $requirements['php_register_globals']['severity'] = REQUIREMENT_ERROR;
56 // $requirements['php_register_globals']['value'] = $t("Enabled ('@value')", array('@value' => $register_globals));
57 // }
58 // else {
59 // $requirements['php_register_globals']['value'] = $t('Disabled');
}
Schritt 2
Man löscht die Datei .htaccess im Hauptverzeichniss.
Schritt 3
Man lädt die Dateien auf den Server und öffnet dann den Setup ('http://deineadresse.de/install.php'), installiert Drupal und es sollte laufen.
**********
Es kann vorkommen dass es auf bestimmten Seiten weiterhin zu einem 500-Error (Serverfehler) kommt. Ich für meinen Teil habe die entsprechenden HTACCESS Dateien auch hier gelöscht und bisher keine Probleme festgestellt.
Ob das ganze nun eine Sicherheitslücke darstellt kann ich wie gesagt bisher nicht definitiv sagen. Das ganze ist also mit Vorsicht zu genießen. Aber man bekommt Drupal mit dieser Methode anscheinend zum laufen.
Feedback, Kritik und eventuell auch ein Lob ist gerne gesehen ;)
Grüße,
Felix
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Felix, kein guter
am 18.02.2009 - 19:13 Uhr
Hallo Felix,
kein guter Start ins Drupalcenter, sorry :-x
1. DON`T HACK DRUPAL !!! Bedeutet das man den Drupalcore auf keinen Fall ändern sollte, erstens kann man Dir dann bei Problemen nur noch schwer helfen, den Core zu Updaten ist immer eine Qual und es wird jedes mal wenn der Core gehackt wird ein kleines Kätzchen umgebraucht!
2. Es gibt nen guten Grund wieso man Drupal nicht mit Register Globals on installieren sollte, es handelt sich bei der Einstellung in der php.ini um eine sehr große Sicherheitslücke und es ist keinesfalls zu empfehlen diese so zu treffen. Schau Dir das vielleicht mal an http://www.phpbar.de/w/Register_globals
*************************************************************************************************
Ihr erwartet doch nicht ehrlich eine Meinung die frei von eigener Meinung ist, in einem Drupal Forum... ;)
Ihr erwartet doch nicht ehrlich eine Meinung die frei von eigener Meinung ist, in einem Drupal Forum... ;)
Wieso nicht in .htaccess?
am 18.02.2009 - 18:47 Uhr
Der Eintrag
php_value register_globals 0
sollte es auch tun. Oder?
Wenn .htaccess (weil disabled) nicht geht, dann geht aber settings.php:
/**
* PHP settings:
*
* To see what PHP settings are possible, including whether they can
* be set at runtime (ie., when ini_set() occurs), read the PHP
* documentation at http://www.php.net/manual/en/ini.php#ini.list
* and take a look at the .htaccess file to see which non-runtime
* settings are used there. Settings defined here should not be
* duplicated there so as to avoid conflict issues.
*/
ini_set('register_globals', '0');
...
Each time you are patching core .... god kills a kitten
See you at http://drupalcamp.de/
Servus ihr 2, danke für die
am 18.02.2009 - 19:11 Uhr
Servus ihr 2,
danke für die Rückmeldung. Wieder was dazu gelernt :)
Das mit der settings.php werde ich mal die Tage ausprobieren und Rückmeldung geben.
Grüße,
Felix
super, danke für die
am 27.04.2009 - 20:54 Uhr
super, danke für die anleitung. so konnte ich drupal installieren bevor mein provider registerglobals ausgeschaltet hat.