PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Session-Id verewigt sich ungefragt im Formular



BlueJay
14-10-2007, 11:19
Hallo Leute,

bei einem php-generiertem Formular packt das php-System die Session-Id einfach unaufgefordert mitten in die Ausgabe:



...
session_save_path($sessdir); // strato-unvertr�glich?
session_start();
...
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
echo "$kopf $my_text $fuss \n";
exit;

function formular($p,$sp,$s,$h)
{ $t="<form method=\"post\" name=\"form1\" action=\"".$h."\" onsubmit=\"document.form1.abdiepost.value='"._SENDEDATEN."'\">";
$t=$t."<table cellpadding=2 cellspacing=0 border=1 align=center class=\"tabelle\"><tr><td>";
...
$t=$t."</td></tr></table></form>\n";
$t=$t."<div class=\"button\"><a href=\"javascript:this.close()\">"._CLOSE."</a></div>";
return $t;
}


Was macht der Bursche hieraus?



<!Doctype HTML public "-//W3C//DTD HTML 4.01 Transitional//EN">
...
<form method="post" name="form1"
action="http://www.xxx.de/xxx/xxx.php" onsubmit="document.form1.abdiepost.value='Die Daten werden gesendet'">
<input type="hidden" name="PHPSESSID" value="0ac0dac49de19c56e12d8b79354c4d1b" />
<table cellpadding=2 cellspacing=0 border=1 align=center class="tabelle">
...
blablabla



d.h. hinter der Formularstartzeile quetscht er mir die Session als hidden Field in den Output ein! Obwohl ich ihm ein session-Verzeichnis angegeben habe, ws auch bevölkert ist!

Settings:
session_save_handler: file
session_save_path : wird vom Skript gesetzt und auch genutzt
session_use_cookies: on
session_use_trans_sid: on

Kann man das abstellen, ohne in die php.ini eizugreifen?

so long,
BlueJay

BlueJay
14-10-2007, 11:48
Ich habe dazu was gefunden:
http://de.php.net/session
Beitrag von marcel.
Ich nutze zwar kein addslashes, habe aber mal alle maskierten Gänsefüßchen im Form-Tag eliminiert.
Trotzdem ballert mir der Server die hidden session-Variable ins Formular.

Das Formular arbeitet zwar wie vorgesehen, aber die abspeicherbare Session-Id wurmt mich.

Auf ini_set('session.use_trans_sid', 0); reagiert der Server nicht (returnt false)

Erst ini_set('session.use_only_cookies',1); brachte den gewünschten Erfolg. Und Cookies sind auf den Seiten "Pflicht".

So was wie session.prefer_cookies scheint es nicht zu geben.