phpbar.de logo

Mailinglisten-Archive

[php] SESSIONMANAGEMENT

[php] SESSIONMANAGEMENT

Dennis Sterzenbach lists at darknoise.de
Mit Okt 29 15:55:35 CET 2003


christoph lockingen wrote:
>>$_GET, $_POST etc. zu dekontaminieren.
Die Informationen, die per $_GET und $_POST zu Deinem Script kommen,
können frei vom Client erzeugt und bestimmt werden. Sogar kann das Ganze
von einem Angreifer, der zwischen Server und Client sitzt verändert
werden!
Deshalb: Wenn Du Zahlen in einer bestimmten Variablen
(z.B. $_GET['meinezahl']) erwartest: dann prüfe ob es eine ist,
wandle sie zu einer Zahl um (z.B. mit $meinezahl =
intval($_GET['meinezahl']);).
Vertraue niemals einfach so auf das, was das Script zugeschickt bekommt.
Egal ob register_globals = on oder off: Prüfe zuerst was eingeht, bevor
Du es benutzt, sonst erlebst Du Dein blaues Wunder, was Dein Server
"alles kann" (Wenn's hart auf hart kommt sogar Abstürzen, Root-Zugriff
freigeben usw.- die komplette Palette Hacker-freundlicher Aktionen) ;)


> in aller bescheidenheit... auf was muss ich in $_GET oder $_POST achten? Ein
> Link würde schon genügen, oder eine Kurzinfo... Wenn ich globals=on habe,
> dann habe ich die Möglichkeit, Variablen auf instanzierten Objekten direkt
> zu setzen - oder sind das andere Globals? Die SID ist eine global? Scheinbar
> nicht, denn "globals haben mit Sessions nichts zu tun".
Außerdem solltest Du darauf achten, dass Du erst das Handbuch liest und
verstehst, bevor Du damit einfach so rumfuchtelst (Deine vorhergehenden
Mails zeigen mir, dass Du es nicht verstanden oder/und nicht gelesen
hast).

> Nur mal, um mein Gewissen zu erleichtern:
> Wenn ich cookies an habe, dann wird die SessionID im Cookie als String
> gemerkt. An Hand des Cookies kann nun die bisherige Session identifiziert
> werden, da dieser clientspezifisch ist. Wenn ich an Hand der IP gehe,kann
> ich niemanden hinter einem Router dingfest machen. Der ClientPort macht auch
> in Kombination mit dem IP keinen Sinn.
Die Session-ID wird -wenn per Cookie gespeichert und übermittelt- anhand
der darin gespeicherten ermittelt, richtig.
Der Rest ist dagegen mehr oder minder Gülle! Was hat die IP mit der
Session-ID zu tun? Nichts: Wenn Du von Deinem PC aus auf eine Page gehst
und eine SID bekommst, kann ich ohne Probleme mit Deiner SID von meinem
Rechner zugreifen.
Router haben ebenfalls mit Deinem Problem und der Thematik hier nichts
zu tun.

Gut gemeinter Rat:
Lass mal die ganzen anderen Sachen weg, außer dem Session-Problem.
Und vielleicht solltest Du erst einmal die Grundlagen der
(Web-)Programmierung lernen, anstatt direkt mit Session Handling usw.
einzusteigen?
Du wirfst elementare Dinge komplett durcheinander (siehe auch unten).

> Schalte ich nun Cookies ab, wird also bei jedem Scriptstart, in welche nicht
> via $_POST['phpsessid'] gekommen ist, durch session_start() eine neue
> Session angefangen, da die alte Variable nicht mehr bekannt ist.
$_POST hat nix mit Deiner Session-ID zu tun.
Wenn überhaupt, kommt die Session-ID nur dann via $_POST zu Deinem 
Script, wenn ein Formular mit POST abgeschickt wurde.

Halt Dich doch einfach nur an die normale Vorgehensweise (RTFM!).

> Es muss doch eine Möglichkeit geben, die Session - statt Sie in jedem Link
> einzufügen - überall einzufügen...
Hättest Du Dich die eine meiner vorhergegangenen Mails gelesen, wüsstest
Du dass es das gibt. Auch hier gilt wiederum: READ THE FUCKING MANUAL!


-- 
   Dennis Sterzenbach
   http://www.darknoise.de/



php::bar PHP Wiki   -   Listenarchive