PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Session-Variablen sicher?



Milgo
16.03.2012, 14:28
Hallo :)

Ich arbeite seit geraumer Zeit mit PHP, da ich mir das ganze allerdings am ehesten selbst beigebracht habe fehlen mir ein paar interne Verständnisse. Aktuell interessiert es mich, ob sie Session-Variablen die man benutzen kann sicher sind. Kann der Nutzer diese bei sich ändern (wie Cookies), muss ich also ständig abfragen ob die Sessions so sind wie sie sein sollten?

devZero
16.03.2012, 14:33
Die Session-Variablen werden auf dem Server gespeichert, der Nutzer kann sie also nicht verändern und sie sind relativ sicher.

ojas
16.03.2012, 17:18
... ob sie Session-Variablen die man benutzen kann sicher sind. Kann der Nutzer diese bei sich ändern ...?

Von Haus aus sind Session-Variablen so sicher, wie der Server auf dem sie gespeichert sind. Allerdings kann der Entwickler mittels session_set_save_handler() (http://php.net/manual/en/function.session-set-save-handler.php) beeinflussen, wie Sessions geladen und gespeichert werden. Damit wäre es möglich, Session-Variablen als Cookie an den Client zu senden. Dort können sie natürlich vom Benutzer manipuliert werden.

Allerdings ist mir soetwas bescheuertes noch nie vorgekommen. Es ist aber etwas, worauf du achten solltest, wenn du Scripte aus zweifelhaften Quellen verwendest.

Milgo
16.03.2012, 17:30
Ah ok, danke. :) Bin selbst am programmieren, dann kann ich ja beruhigt weitermachen. :)

Wenn ich schonmal bei Sicherheitsfragen bin: Ich überprüfe Formulareingaben eines Benutzers möglichst immer auf gültige Zeichen (bsw. ob Namen nur aus Buchstaben bestehen) und wende auf die Eingaben noch mysql_real_escape_string an, reicht das um SQL-Injektion zu verhindern, wenn ich sauber arbeite?

Lolomoloko
16.03.2012, 17:49
du solltest mit prepared statements arbeiten, dann bist du auf der sicheren seite.

Kylex
16.03.2012, 18:16
du solltest mit prepared statements arbeiten, dann bist du auf der sicheren seite.
escaping ist aber auch ausreichend

Ich überprüfe Formulareingaben eines Benutzers möglichst immer auf gültige Zeichen (bsw. ob Namen nur aus Buchstaben bestehen)
das ist recht unnötig und kann schnell dazu führen, dass nutzer entnervt aufgeben und das formular nicht erfolgreich absenden
bei so allgemeinen feldern wie "name" gibt es nicht wirklich einen grund, zeichen bei der eingabe auszuschließen - erst recht nicht aus gründen der "sicherheit"

klare und einfache methoden sind letztendlich sicherer als scheinbare mehrfachabsischerung