Einzelnen Beitrag anzeigen
  #1  
Alt 19.11.2006, 17:11:19
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
Direkten Aufruf einer Seite(mit GET/POST Param.) verhindern

Hallo Leute,
war schon lange nicht mehr aktiv hier ;) (und hab auch einiges vergessen..).

Angenommen es gibt auf einer Seite die Möglichkeit Leute zur BuddyListe hinzuzufügen.
Dann gibt es eine Seite, auf der nach einer Bestätigung gefragt wird (z.B. Seitenname: add_buddy_confirm.php), wenn man nun auf "Buddy bestätigen" klickt, dann landet man auf "add_buddy.php". Dort wird nun überprüft, ob die per HTTP POST/GET übertragene Variable übertragen wurde und der Freund wird zur BuddyListe hinzugefügt.
Jetzt kommt das Problem:
Wenn nun ein Angreifer eine eigene Seite erstellt (auf seinem Server), die (bei GET) als Blind-IMG die Adresse http://www.example.org/add_buddy.php...23&submit=true enthält (oder bei POST über JavaScript eine Post Anfrage an den Server sendet), und diese Seite an ein eingeloggtes Mitglied sendet, dann landet der Angreifer auf der BuddyListe, nachdem das "Opfer" auf den Link geklickt hat.
Nun stellt sich die Frage, wie man dafür sorgt, dass trotzdem add_buddy_confirm.php besucht werden muss.
Wenn man auf add_buddy_confirm.php z.B. $_SESSION['visited'] = TRUE setzt und dies auf add_buddy.php nachprüft, dann bringt das ja nichts, denn der Angreifer kann zuerst add_buddy_confirm.php aufrufen und gleich danach add_buddy.php mit den GET/POST Parametern (alles als Blind IMG).
Fällt hier jemandem eine Lösung ein, mit der dieser Trick über eine "blind img" nicht geht?
HTTP_REFERER wäre keine gute Lösung.. das einzige was mir einfällt wäre eine Überprüfung über einen Code (als Grafik), so wie es bei den meisten Seiten bei der Anmeldung der Fall ist.

Sorry für den langen Text, aber ich konnte das nicht kürzer erklären.

Danke im Voraus.
overclocker
Mit Zitat antworten