sessioid neu setzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sessioid neu setzen

    wie kann ich bei meiner seiten, bei jedem seitenaufruf, bei welchem der user nicht eigeloggt ist, ihm eine neue sid zuweisen?
    *blubb*

  • #2
    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?
    Wozu?

    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

    Kommentar


    • #3
      danke.

      ich bracuhe es, um hijacking zu vermindern
      *blubb*

      Kommentar


      • #4
        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


        • #5
          Mit "es klappt nicht" kann doch niemand etwas anfangen. Fehlermeldungen? Irgendwelche Hinweise? Debugausgaben gemacht?
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            der code wird inner endloseschleife ausgeführt.

            naja, ich komm irgendwie net weiter.

            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.?
            *blubb*

            Kommentar


            • #7
              Original geschrieben von deathcakeman
              ich bracuhe es, um hijacking zu vermindern
              Was interessiert dich Hijacking bei einer leeren Session?
              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.?
              Man kann keine SID für einen Client "registrieren". Du kannst die IP Überprüfen und wenn diese anders ist als in der Session, die Session neu generieren, aufgrund dynamischer ip-Adressen aber nur bedingt zu gebrauchen.
              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


              • #8
                Original geschrieben von ghostgambler
                Wie gesagt, um dem Hijacking entgegen zu wirken, reicht es BEIM Login die SID EINMAL neu zu generieren
                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.

                Kommentar


                • #9
                  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.
                  es ging aber ja speziell um nicht-eingeloggte User, wo das ganze irgendwie keinen Sinn ergibt

                  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


                  • #10
                    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

                    Lädt...
                    X