globals "Zu" global

Subwoover

Erfahrenes Mitglied
Hey ich hab folgendes problem:

ich hab ne _cfg.php die überall included wird, dort befindet sich u.a. datenbankaufbau blablabla...
wenn ich jez in der cfg den user status überprüfe also:
PHP:
		if ((!empty($_SESSION['user_in'])) OR (!empty($_COOKIE['user_in'])))
		    $user_in = true;
		} else {
			$user_in = false;
		}

und dann einfach in der index.php abfrage:

PHP:
	if (!empty($user_in)) {
		echo "blaaaaaaaa<br>";
	}

wird dann wirklich auch nur die $user_in aus der cfg genommen oder kann man das auch umgehen mittels index.php?user_in=1

Ich finds halt einfacher in der cfg zu checken als in jeder file jedesmal extra neu die session und die cookies checken...

EDIT: habs grad probiert: perfekt :) aaaaaaaaaber das ist ja nicht die einzige möglichkeit das zu umgehen oda? wäre es sicherer den status in jeder file extra zu checken?
 
Zuletzt bearbeitet:
Verifikation ist immer so ein Streitthema, du kannst nie sicher sein, dass deine Session-ID entführt wird, dann ist es ganz einfach, den Userstatus zu ändern. Du kannst ja eine Prüfroutine als Funktion oder so etwas schreiben, die du dann am Anfang einer Datei immer ausführst. So wie du es ja bereits mit der _cfg.php machst, könntest du halt auch so den Benutzerstatus überprüfen. Allerdings solltest du mit unterschiedlichen Mitteln testen, wie man das dennoch umgehen kann, und dann schreibst du die passende Behandlung.

Ich kenne jetzt keinen ultimativen Das-Macht-Alles-Super-Sicher-PHP-Code, weil man selbst wissen muss, wie "sicher" man ein System machen will. Am besten du prüfst jede der Global_arrays, dann kannst du nichts falsch machen :p
 
Original geschrieben von Subwoover
wird dann wirklich auch nur die $user_in aus der cfg genommen oder kann man das auch umgehen mittels index.php?user_in=1
Durch deinen Else-Zweig bei der Abfrage verhinderst du ja, dass man über die Request-Variablen diesen Status faken kann.
Aber grundätzlich ist es so, dass wenn Register Globals auf ON stehen, die Variable $user_in und $_SESSION["user_in"] identisch sind bzw. sich in die Quere kommen können. Daher ist ein explizietes setzen auf register_globals off ganz gut ;) Um noch mehr Sicherheit reinzubringen, wie von methodus bereits sagte, kannst du folgendes in eine .htaccess eintragen. Das verhindert dann, dass die SID via GET übertragen wird und setzt Cookies voraus. Somit ist die Sache ein bissel "sicherer" und du trennst durch register_globals=off den Namespace expliziet in Superglobals und Globals.
Code:
php_flag session.use_trans_sid 0
php_flag session.use_only_cookies 1
php_flag register_globals 0

Gruss
Jan
 
vielen dank für die hilfreichen antworten

Ich werd mich erkundigen ob mein hoster nicht doch auf register_globals off umsteigt :) Die rennen derzeit auf on...
ja ich möchte dass es so sicher wie möglich ist, das mit .htaccess is mir jedoch fremd, kenne mich da null aus, pls mal aufklärung wie ich das mache ;)
 
Die brauche das nicht für DICH umstellen. Das kannst du ja selber machen. Undzwar legst du dir eine .htaccess-Datei an, indie kopierst du dann die 3 Zeilen, die ichgepostet habe. Falls du noch weitere Änderungen machen willst, musst du mal hier -> http://de3.php.net/manual/de/function.ini-set.php vorbeischauen. Alles, wo changeable = PHP_INI_PERDIR ist, kannst du in die .htaccess auslagern. Aber genaueres steht dazu auch auf der Seite.

Ich bin mir nicht 100pro sicher, ob das auf jedem Server funktioniert. Bei mir hats geklappt :)

Bedenke aber, wenn du session.use_trans_sid auf 0 und session.use_only_cookies machst, sperrst du ggf. User aus.

Gruss
Jan
 
*dumme frage* wie leg ich ne .htaccess datei an? bzw wohin damit?

aber danke schonmal für den link, zieh ich mir nachher gleich mal rein :)
 
Original geschrieben von Subwoover
*dumme frage* wie leg ich ne .htaccess datei an? bzw wohin damit?

aber danke schonmal für den link, zieh ich mir nachher gleich mal rein :)
:eek: ist nicht dein Ernst, oder? :rolleyes:
Naja gut... eine .htaccess-Datei ist eine Datei, die .htaccess heisst.:) Falls du unter Windows arbeitest, kann es sein, dass man eine Datei mit diesem Namen nicht erstellen kann. Dann bennenst du sie einfach um und spielst sie via FTP in das Root-Verzeichniss (also ganz nach unten, wo deine erste index.*-Datei liegt :)) deines Webspaces und benennst Sie via FTP in .htaccess um. Alle Sachen die du darin definiert hast, werden in Unterordnern auch noch beachtet.

Gruss
Jan
 
Danköööö für die info ;) Jez weiß ichs hehe :)

Und was / wie kann man dinge darin definieren? also das mitn cookie und so habt ihr ja da schon gepostet aber das will ich nicht auf alle subfolder ausdehnen :)
was gibts denn für einstellungen die man da vornehmen kann in der file?
 
Zurück