Login mit Session

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

  • Login mit Session

    Hi !

    User können einen Bereich nur durch das erfolgeiche Login erreichen! Hat sich ein User eingeloggt, so wird geprüft ob User und Passwort vorhanden sind und mir dem Login Eintrag übereinstimmen !

    Mein Problem ist, kopiere ich den Eingeloggten Link und trage den in die Browser-Aderssse ein, so gelangt man auch in den abgesicherten Bereich. Muß hier nicht die SessionID zur Wirkung kommen, denn ich prüfe doch die Kombination aus Sessionid und Username !



    <?
    session_start ();
    include 'config.php';
    $sql = "SELECT * FROM test WHERE (user = '".$_REQUEST["user_name"]."') AND (passwort = '".$_REQUEST["user_passwort"]."') AND (status = 'j')";
    $result = mysql_query ($sql);

    if (mysql_num_rows ($result) > 0)
    {
    $data = mysql_fetch_array ($result);
    $_SESSION["userid"] = $data["user_id"];
    $_SESSION["user_name"] = $data["user"];
    $user_o = $_SESSION["user_name"];
    header("Location:start.php?aktion=login_start&user=$user_o");
    }
    else
    {
    header("Location:index.php?fehler=1");
    }
    ?>


    Bei Erfolg wird sie Seite start.php geladen

    <?
    session_start ();

    if (!isset ($_SESSION["user_name"]))
    {
    header("Location:index.php?fehler=1");
    exit;
    }
    else
    {
    .
    .
    .
    ?>

    Alle anderen Seiten werden auch so geprüft !

  • #2
    Re: Login mit Session

    - statt * solltest du die erwarteten Spalten in dem SELECT explizit angeben
    - die Passwörter sollten nicht im Klartext in der DB stehen
    - mysql_num_rows sollte genau 1 ergeben
    - der HTTP-Standard verlang eine absolute URI im Location-Header
    - leite einfach auf start.php weiter, ohne GET-Parameter
    - in der start.php (und überall sonst) prüfst du auf vorhandene Session und korrekte Session-Werte
    - falls nicht vorhanden -> logout

    Kommentar


    • #3
      Re: Re: Login mit Session

      Original geschrieben von onemorenerd
      1. statt * solltest du die erwarteten Spalten in dem SELECT explizit angeben
      2. die Passwörter sollten nicht im Klartext in der DB stehen
      3. mysql_num_rows sollte genau 1 ergeben
      4. der HTTP-Standard verlang eine absolute URI im Location-Header
      5. leite einfach auf start.php weiter, ohne GET-Parameter
      6. in der start.php (und überall sonst) prüfst du auf vorhandene Session und korrekte Session-Werte
      7. falls nicht vorhanden -> logout

      Danke !

      Zu Punkt 2. Sollte ich das am besten mit md5 verschlüsseln ?

      Zu Punkt 5. Wie bekomme ich den eingeloggten Username heraus, mit $Session['user_name'], möchte den Namen ausgeben, wenn eingeloggt !

      Zu Punkt 6.

      So ?
      <?
      session_start ();

      If (!isset($_SESSION)
      {
      header("Location:index.php?fehler=1");
      exit;
      }

      if (!isset ($_SESSION["user_name"]))
      {
      header("Location:index.php?fehler=1");
      exit;
      }
      else
      {


      Zusatzfrage: Sollte ich die SessionID auch "manuell mit übertragen"(per get im Link), falls jemand Cookies nicht so mag ^?


      Danke

      Kommentar


      • #4
        Re: Re: Login mit Session

        Original geschrieben von onemorenerd
        - statt * solltest du die erwarteten Spalten in dem SELECT explizit angeben
        - die Passwörter sollten nicht im Klartext in der DB stehen
        - mysql_num_rows sollte genau 1 ergeben
        - der HTTP-Standard verlang eine absolute URI im Location-Header
        - leite einfach auf start.php weiter, ohne GET-Parameter
        - in der start.php (und überall sonst) prüfst du auf vorhandene Session und korrekte Session-Werte
        - falls nicht vorhanden -> logout

        Danke !

        Zu Punkt 2. Sollte ich das am besten mit md5 verschlüsseln ?

        Zu Punkt 5. Wie bekomme ich den eingeloggten Username heraus, mit $Session['user_name'], möchte den Namen ausgeben, wenn eingeloggt !

        Zu Punkt 6.

        So ?
        <?
        session_start ();

        If (!isset($_SESSION)
        {
        header("Location:index.php?fehler=1");
        exit;
        }

        if (!isset ($_SESSION["user_name"]))
        {
        header("Location:index.php?fehler=1");
        exit;
        }
        else
        {


        Zusatzfrage: Sollte ich die SessionID auch "manuell mit übertragen"(per get im Link), falls jemand Cookies nicht so mag ^?

        Kommentar


        • #5
          2. ja
          5. ja
          6. isset($_SESSION) macht keinen sinn. zweite abfrage dagegen schon. ansonsten - siehe nochmal nummer 4.
          zusatzfrage: kannst du machen, schau dir http://de2.php.net/manual/en/ref.ses....use-trans-sid an.

          Kommentar

          Lädt...
          X