wie kann ich bei meiner seiten, bei jedem seitenaufruf, bei welchem der user nicht eigeloggt ist, ihm eine neue sid zuweisen?
sessioid neu setzen
Einklappen
X
-
Re: sessioid neu setzen
Original geschrieben von deathcakeman
wie kann ich bei meiner seiten, bei jedem seitenaufruf, bei welchem der user nicht eigeloggt ist, ihm eine neue sid zuweisen?
session_regenerate_id
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
-
Ich habe jetzt noch folgendes problem.
Wenn jemand in der url die sid-var. verändert, dann wird er zum login umgeleitet. (weil ohne eine "extra function" passiert da ja nix)
Ich habs mit dem verscuht, aber es klappt net^^
hat jemand noch ne idee?
PHP-Code:function checksessionid($location, $sessionname, $sessionid) {
if (isset($_GET['sid']))
{
$sid=$_GET['sid'];
}
else
{
$sid="";
}
$sessionexist=mysql_query("SELECT * FROM sessions WHERE session_id = '$sid'");
$row=mysql_num_rows($sessionexist);
if ($row <= 0)
{
$sessionok=false;
}
else {
$sessionok=true;
}
if($sessionok==false) {
header("Location: [url]http://[/url]".$location."/logout.php
?error=2&".$sessionname."=".$sessionid."");
}
}
Zuletzt geändert von deathcakeman; 17.12.2006, 20:35.*blubb*
Kommentar
-
Original geschrieben von deathcakeman
ich bracuhe es, um hijacking zu vermindern
Beim Login einfach eine neue SID generieren, fertig
Davor kann der User doch eine SID haben wie er will
gibts ne möglichkeit, wenn der client in der Url na andere sid eigibt, als für ihn registriert ist, das er zum login umgeleitet wird, etc.?
Generell ist eine Session nun mal leider nicht sonderlich sicher. Es lässt sich durch "nur Cookies" für die SID eingrenzen, genauso wie eben beschriebener Sicherheitsmechanismus über die IP, aber ganz sicher wirst du es nie kriegen...
Wie gesagt, um dem Hijacking entgegen zu wirken, reicht es BEIM Login die SID EINMAL neu zu generieren
und brich die lange Code-Zeile um. Ich hab Auflösung > 1024 und trotzdem einen horizontalen Scrollbalken (siehe Regeln -> Verboten)
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
Original geschrieben von ghostgambler
Wie gesagt, um dem Hijacking entgegen zu wirken, reicht es BEIM Login die SID EINMAL neu zu generieren
um diese clients nicht auszuschließen, aber trotzdem für "sicherheit" zu sorgen, könnte ich es mir vorstellen, bei jedem request einer "scharfen" session (falls die session per get kommt) ein session_regenerate_id(true) auszuführen, beim login sowieso.
Kommentar
-
Original geschrieben von 3DMax
aber nicht alle clients akzeptieren cookies, z.b. innerhalb von firmen-netzwerken oder (un)bewusst abgeschaltet.
um diese clients nicht auszuschließen, aber trotzdem für "sicherheit" zu sorgen, könnte ich es mir vorstellen, bei jedem request einer "scharfen" session (falls die session per get kommt) ein session_regenerate_id(true) auszuführen, beim login sowieso.
Trans-id sollte man pro-sicherheit sowieso abschalten ^^,
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
danke für eure hilfe,
aber ich glaube ich habe die Frage falsch formuliert^^
was ich meine ist:
So leute nehmen wir mal, in dr URl steht:
xxx.de/xx.php?sid=xxx
wenn jetzt jemand der eingeloggt ist
xxx.de/xx.php?sid=xxxy
macht dann soll de code ausgeführt. leider klappt das nich, da die seite, egal ob das zutrifft oder nicht, solange geladen wird, bis das laden abbricht.
Da kommt dann so ne alert meldung
PHP-Code:function checksessionid($location, $sessionname, $sessionid) {
if (isset($_GET['sid']))
{
$sid=$_GET['sid'];
}
else
{
$sid="";
}
$sessionreg=true;
$checksesreg=mysql_query("SELECT * FROM sessions WHERE session_id = '$sessionid'");
while ($row = mysql_fetch_object ($checksesreg)) {
$sesreg=$row->username;
if ($sesreg=="") {
$sessionreg=false;
}
}
if ($sessionreg==true) {
if ($sessionid!=$sid) {
header("Location: [url]http://[/url]".$location."/logout.php
?error=2&".$sessionname."=".$sessionid."");
}
}
}
*blubb*
Kommentar
Kommentar