Moin,
Zitat von
Matze:
Wie ich das mache? Na ich übergebe die Session nicht als Parameter, da wäre ich ja schön doof.
Das Session-System funktioniert wie eigentlich die meisten über Cookies und diverse Session-Einträge in der Datenbank.
sei dir da mal nicht so sicher. Du hasst ein Session-Cookie fuer www.foobar.com. Das Script /delete_user.php prueft, ob eine Session gueltig ist, und ob auch die Berechtigungen vorhanden sind. Das verhindert, dass ich (ohne gueltiges Session-Cookie) einen User loeschen kann. Ich kann dir aber immer noch die
URL unterjubeln, z.B. als Bild in einem
BBCode, wenn du die nicht gruendlich abgesichert hast. Der Browser sieht dann, dass er die Seite www.foobar.com/delete_user.php aufrufen soll, und schickt bei der Gelegenheit auch das Cookie mit, das er hat. Nachdem es dein Browser ist, schickt er dein Cookie mit. Das Script sieht also dass ein Cookie da ist, sieht dass die Berechtigungen passen und loescht munter darauf los.
Klar hat dieses Beispiel mehr Angriffsflaeche als ein U-Boot das an der Oberflaeche schwimmt. Es soll aber nur zeigen, dass man nichts ausser acht lassen darf. BTW, Sicherheit kommt nicht davon, zu wissen dass man auf Sicherheit achtet. Behandle deine Scripte wie Sicherheitsloecher, die darauf warten dass jemand mit ihnen spielt. Der Moment wird schliesslich kommen - XSS und CSRF sind keine Seltenheiten, sondern fast allgegenwaertig. Im phpBB gibts z.B. den Fall, dass man mit nem Avatar ne Sauerei anstellen kann, wenn ein paar Variablen erfuellt sind. Ist zwar nicht immer der Fall, aber frueher oder spaeter kann jemand in die Falle tappen, und dann ist die kacke am Dampfen
Greetz
alcaeus