Wie auch schon per Chat beantwortet, nochmal für Alle, die es wissen wollen:
Frage 1:
Zwei Felder feld1 und feld2, die als hidden fields immer hin und her gereicht werden
feld1 wird mit IP, SessionID, Username und am besten noch ein paar randomnbytes gefüllt.
feld1 wird verschlüsselt (am besten asynchron als kleinen Bonus für den bösen Hacker)
von feld1 (schon verschlüsselt) wird eine checksumme gemacht (am besten nur von einem teil der bytes aus feld1)
feld2 wird mit checksumme gefüllt und dann auch verschlüsselt (mit anderem schlüssel)
bei jedem Klick checkt der Server meine IP und verläßt sich einfach auf die UserID.
Frage 2:
Das solltest du andersrum lösen:
Wenn neue Session geöffnet wird, dann wird die alte geblockt (ist einfacher, dann dürfen aber keine frames da sein)
Die SeesionID kriegt einfach ein Tag, in dem ne fortlaufende Nummer hochgezählt wird. Wenn die Nummer ein zweitesmal vorkommt (also ein zweiter Aufruf von einer Seite aus) dann wird die geblockt. Die Nummer muß man sich halt im Speicher bereithalten.
RichiH