Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Apache, Lighttpd, nginx, Cherokee
Post Reply
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Post by wellenbrecher »

Hallo Leute,

ich bin voll am verzweifeln.
Da man ja immer mit der Welle in Sachen Sicherheit schwimmen will, habe ich mich durchgerungen, alle relevanten Login Scripts nach den neuen Sicherheitsstandard umgeschrieben ($_POST['vari']).

Alles funktioniert sauber, aber es werden absofort keine Cookies mehr gesetzt oder geschrieben. Setzte ich die GLOB_VAR wieder auf ON funktionieren wieder die Cookies.

Bei der OFF Variante benutze ich ebenfalls das Zeugs nach $_COOKIE['var'] und funktion setcookie(......). Habe auch die unsichere Variante probiert (z.B. $CookieVari).

Gibt es noch irgend eine Einstellung in der PHP.INI die ich übersehen habe?

Ich bin am Ende und könnte die elektronische Kartoffel anbrennen, erschießen und mit Säure überkippen!!!!!!!! :evil:

Hat irgend ein Genie ein Lichtblitz an dem er mich teilhaben läßt?:lol:

MfG
S.R.
mc5000
Posts: 308
Joined: 2004-06-17 11:56
Location: Köln
 

bitte genauer!

Post by mc5000 »

Bist Du sicher das kein cookie gesetzt wird?
oder kannst du vielleicht nur nicht mehr darauf zugreifen?
Anmerkung: Ist die PHP Direktive register_globals auf on gesetzt, stehen die Cookies auch als eigene Variablen zur Verfügung. In den nachstehenden Beispielen wird $TextCookie also existieren. Es wird empfohlen, $_COOKIE zu verwenden.

Häufige Probleme:

Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, in der das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf einer weiteren Seite ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels dem Parameter expire gesetzt. Eine nette Möglichkeit um die Existenz von Cookies zu prüfen, ist print_r($_COOKIE); aufzurufen.
wirst du schon kennen - doch schaden kanns ja nicht:
http://de3.php.net/manual/de/function.setcookie.php
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

Re: Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Post by wellenbrecher »

Hallo mc5000,

jo, ich bin mir sicher. Wenn ich die Globalen anschalte, wird das Cookie in eigene Dateien/Benutzer/Cookies gespeichert. Wenn ich das Globale Zeugs ausschalte, wird das Cookie nicht gesetzt. Hatte auch den Cookie Ordner geleert. Half auch nix. Auch wenn das Cookie nicht existiert, wird es nicht angelegt.

MfG
S.R.
mc5000
Posts: 308
Joined: 2004-06-17 11:56
Location: Köln
 

*denk*

Post by mc5000 »

was gibt setcookie zurück ?
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

Re: Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Post by wellenbrecher »

Es gibt false bzw NULL zurück. Also Cookie ohne Inhalt bzw nicht gesetzt

S.R.
mc5000
Posts: 308
Joined: 2004-06-17 11:56
Location: Köln
 

header....

Post by mc5000 »

setcookie gibt false zurück wenn bereits vorher etwas gesendet wurde ....

Wie schaltest Du register_globals ON bzw. OFF??
Direkt in der php.ini/vhost-config oder im script??

an dem register_globals kann es eigentlich nicht liegen .... :?:
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

Re: Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Post by wellenbrecher »

Ich habe darauf aufgepasst, dass alle Tags wie <html>.....<header> usw erst nach der COOKie Setzung aufgerufen oder gesendet werden. Von daher geht alles klar.

Die Funktion schalte ich direkt in der php.ini auf aus. Wußte gar nicht, dass man das auch im PHP-Script tun kann. Wie soll das gehen?

Wenn es an dem wäre, dann sind alle Sicherheitseinstellungen doch für die Katz! Warum soll man in der PHP.INI die Tür von innen verrammeln, wenn der Hacker von aussen mit einem Schlüssel (also PHP-Script) die Tür ohne Schwierigkeiten öffnen kann.

Das grenzt doch an Wahnsinn. Warum betreiben wir Addis dann so einen Hackmeck, wenn am Ende alles wieder mit einem Script ausgehebelt werden kann :cry:

Da kämpft man doch gegen Windmühlen!

MfG
S.R.
outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City
 

Re: Nach REGISTER_GLOBALS=OFF gehen keine COOKIES mehr

Post by outofbound »

globals kann man in der htaccess ausschalten, im script selbst nicht.

Du hast also ein Script, das mit reg=on geht, mit OFF nicht, sehe ich
das richtig. Es sind nicht zwei Scripte, von denen eines geht und das
andere nicht?

Wenn dem so ist, kannst du das script dann mal auf ein minimum
reduzieren und hier posten? Dann kann ich den Fehler mal versuchen zu reproduzieren.

Hast du evtl. ein paar Leerzeichen vor dem eigentlichen <?php
stehen? Das könnte der Fehler sein, aber wir können nur mutmaßen.

Gruss,

Out

PS: Apache / PHP- Version etc nicht vergessen.
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

*ach du lieber Himmel.....*

Post by wellenbrecher »

Halt, stop!
Nicht falsch verstehen! ich habe kein Script. Ich habe ein Login Script, dass den Benutzernamen und Benutzerpasswort abfragt und mit der Datenbank vergleicht. Dann setzt er bei erfolgreicher Ã?berprüfung ein Coocie, das etwa 2 Stunden gültig ist. Dieses Cookie wird von der neu aufgerufenen Seite abgefragt. Nur wenn das Cookie da ist, kann man mit der neuen Seite arbeiten.
Also, die eine Datei ist das Loginscript, das andere die, sagen wir mal, Adminseite, die Arbeiten an der Homepage zB. ermöglichen.
Und nun kommt es - ich setze in der PHP.INI die Globalen Variablen auf ON und lese das Login Formular und die Cookies ganz normal mit $Variablenname aus. Funktioniert bestens. Cookies werden gesetzt und Script richtig ausgewertet und in die richtige Seite gesprungen.
Dann schalte ich wegen der Sicherheit die Funktion der Globalen Variablen auf OFF und lese die Formularwerte mit $_POST["Variable"] und die Cookies mit $_COOKIE["Variable"] aus bzw versuche das Zeug auszuwerten.
Das Zeug mit POST funktioniert bestens. Aber das Zeug mit COOKIE funktioniert absofort nicht mehr. Ich kann keinen einzigen Cookie mehr setzen oder auslesen.
Das Script get etwa so:
ist das Formular ageschickt worden? Ja / Nein?
Bei NEin zurück zum Login - bei JA abfragen des Passwortes und des Benutzers. Bei erfolgreicher Auswertung setze einen Cookie mit 2 Stunden Haltbarbeit. Danach die neue Seite aufrufen. Entweder mit PHP oder über die JavaScript Funktion. Es funktioniert beides.
Auf der neuen Seite den gesetzten Cookie abfragen. Wenn TRUE oder 1 dann weiter im Text. Wenn FALSE oder 0 - zurück zum Login mit entsprechender Fehlermeldung.

Ich hoffe, dass das jetzt besser erklärt war.
Vielen Dank für Eure Hilfe.
Ich wünsche noch schöne Ostern.
Eurer S.R.
wgot
Posts: 1675
Joined: 2003-07-06 02:03
 

Re: *ach du lieber Himmel.....*

Post by wgot »

Hallo,
Wellenbrecher wrote: ich habe kein Script. Ich habe ein Login Script
was nun - Script oder nicht? :lol:

Schreibe ein Miniscript zum Setzen und Lesen von Cookies. Geht das? Dann liegt es nicht an $_COOKIE sondern an irgendwas anderem im großen Script.

Geht das nicht? Dann poste das Miniscript.

Es macht keinen Sinn, solche Probleme an irgendwelchen dicken aus mehreren Dateien und einer Datenbank bestehenden Konstruktionen zu untersuchen.

Gruß, Wolfgang
wellenbrecher
Posts: 10
Joined: 2005-03-23 17:50
 

*hmm...*

Post by wellenbrecher »

wgot hat folgendes geschrieben:
Schreibe ein Miniscript zum Setzen und Lesen von Cookies. Geht das? Dann liegt es nicht an $_COOKIE sondern an irgendwas anderem im großen Script.
Klingt irgend wie logisch. Gut. Ich werde dieses Script schnell schreiben und mich mit dem Resultat wieder melden.

MfG
S.R.
Post Reply