Session in URL

Begonnen von Webfan, 30 November 2007, 23:34:53

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Webfan

Der yahoo Bot (anscheinend nur der yahoo Bot, bisher ist mir kein anderer aufgefallen) besucht immer URLs der Form:
/Forum-mxDE6B23D00EB64EBED7CBAE08050279-ebcb78c6be8420f0840d2df2809fb49c-modules-Forum-action-arcade.html

Wie kann ich das abstellen?

Webfan

*Niemand eine Idee? Ganz leise anfrag*

Hatte vor längerer Zeit mal irgendwo im SMF Forum einen Thread dazu gefunden, die vorgeschlagene Änderung hatte aber in der Bridge nicht funktioniert... jedenfalls besucht der yahoo Bot immer noch diese URLs mit Session...

Edit:
Das unbequeme daran ist das durch das Modrewrite der die $_GET Variable anscheinend immer anders aussieht...

Andi

Moin :)

so richtig kann ich mir auch nicht erklären, warum das so ist...

Die pragmaMx-Session-Konfiguration ist so ausgelegt, dass es eigentlich unmöglich ist, dass die Session-ID an die URL mit angefügt wird.
        @ini_set("session.use_cookies" , '1'); // Use cookie to store the session ID
        @ini_set("url_rewriter.tags" , ''); // verhindern, dass SID an URL gehaengt wird
    if (MX_PHP_VERSION >= 430) {
        @ini_set("session.use_only_cookies", "1"); // Use only cookie to store the session ID 
    }


Ich vermute mal, dass das der Bot von sich aus macht. Er bekommt ja den Header gesendet um den entsprechenden Cookie zu setzen. Evtl. schreibt der dann die Cookiedaten automatisch mit in die URl zum Aufruf.
Was da aber wieder dagegen spricht ist, dass die Cookie Daten sogar passend in der für mod_rewrite umgeschriebenen URL eingefügt sind...
Sorry, aber um das zu ergründen, müsste man genauere Nachforschungen betreiben  :gruebel:

Aber...
Es ist zwar sehr unschön, aber gefährlich ist das nicht, weil die per GET übergebene Session-ID von pragmaMx sowieso nicht anerkannt, oder ausgewertet wird.
schön´s Grüssle, Andi

Webfan

Hallo Andi,
vielen Dank für Deine Antwort  :)
Das komische ist ja, das das SMF wahrscheinlich dafür verantwortlich ist, aber in dem Sessiongedönse mx... steht.
ZitatEs ist zwar sehr unschön, aber gefährlich ist das nicht,
Es geht mir in diesem Fall um den dopellten Content den der Yahoo Bot sieht. Wenn es wenigstens ?SID= wäre, aber er sieht ja "qualifizierte Html Seiten".

Also den Vorschlag/Fix aus dem SMF Forum kann ich partout nicht wiederfinden. Weder im SMF Forum noch auf meiner HD. HAb ich glaub ich wieder gelöscht als ich den Seo4smf mod (im Standalone) installiert habe, denn da hatte sich das dort dann mit der SID erledigt.

Habe jetzt eine ganz andere Idee  :mad2: in Sources/QueryString.php:
// This should work even in 4.2.x, just not CGI without cgi.fix_pathinfo.
if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])
{
// Let's do something special for session ids!
if(defined('SID') && SID != '' && 1+1==3)
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?(?:' . SID . ';)((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html?' . SID . '\$2\"'", $buffer);
else
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
}

Kann sein, daß das bei mir das Problem ist, weil bei mir apache als CGI läuft.
Hab also die if Bedingung geändert:    if (!empty($modSettings['queryless_urls']))
Was macht die Funktion? Und warum die Bedingung wenn 1 und 1 3 ist?
Kann die QueryString.php dafür zuständig sein, oder bin ich auf dem Holzweg?

mfg  + gute Nacht

Webfan


Jetzt fängt der Google Bot damit an. Hab ich die letzten hundert Jahre zuvor noch nie gesehen.
Dafür hab ich den yahoo Bot heute noch nicht dabei erwischt.
Zitat
Ich vermute mal, dass das der Bot von sich aus macht.
Ich glaub auch