@ SISTRIX:
Habe den Artikel gelesen und finde ihn sehr interessant. Im Moment steckt die Site noch in den Kinderschuhen. Aber über kurz oder lang wird das mit den Proxys wahrscheinlich auch ein Problem werden, um das ich mich kümmern muss.
Im Moment geht es mir ja vor allem um die SID-Problematik, und da finde ich natürlich den Code-Snippet im Artikel interessant um herauszufinden, ob der Besucher ein robot ist oder ein normaler Nutzer.
@SloMo
Ja, genau. Der Shop funktioniert jetzt wie er ist und umstricken wäre etwas aufwändig und auch gar nicht so sinnvoll. Denn der Shop hat z. B. einen Merkzettel, den man ausdrücklich auch dann nutzen kann, wenn man nicht angemeldet ist. Wenn man sich dann doch anmeldet, wird der "temporäre Merkzettel" in einen "permanenten" übernommen und mit der Kundennummer gespeichert, so dass er beim nächsten Login wieder da ist. Der "temporäre Merkzettel" (ohne Login) geht beim Beenden der Sitzung verloren. Das ist auch ok, aber so lange sollte er eben funktionieren und dafür, unter anderem, brauche ich die Session.
Ich habe mir jetzt folgendes überlegt:
Meine Links sehen eigentlich immer gleich aus. Erst die domain, dann eine anzahl von ordnern, dann "show.html" und wenn eben kein cookie gesetzt werden konnte noch hinten dran "?PHPSESSID=123456". Also z. B. :
mit cookie:
www.domain.com/daimler/benz/autos/show.html
ohne cookie:
www.domain.com/daimler/benz/autos/show. ... SID=123456
Das "?PHPSESSID=123456" ist, wie bereits erwähnt, in einer Variablen hinterlegt, die ohnehin an absolut jeden Link angehängt wird und eben wenn ein cookie gesetzt werden konnte leer ist. Nennen wir die Variable mal $give_sid. Dann hat die also entweder den Inhalt
$give_sid = '';
oder
$give_sid = '?PHPSESSID=123456';
Jetzt mein Lösungsansatz. Vielleicht könnt Ihr mir sagen, ob das so sinnvoll wäre:
1.) Ich starte die Session weiterhin immer.
2.) Ich ermittle (per eregi oder pregmatch), ob es sich um einen BOT handelt.
-> wenn Ja, setze ich die $give_sid = ''; Dann bekommt der BOT die URIs ohne Anhang.
3.) Ich sperre in der robots.txt einfach alle Seiten mit dem Anhang "?PHPSESSID=". Verirrt sich also doch einmal ein BOT an der eregi/pregmatch-Regel vorbei, weil ich ihn z. B. dort nicht aufgeführt habe, oder weil er versucht, einen human_user zu simulieren, so wird er eigentlich komplett geblockt. Denn er erlaubt ja keine cookies und somit sind alle Links mit dem Anhang "?PHPSESSID=" versehen.
Was haltet ihr davon?