kostenloser Webspace werbefrei: lima-city


Frage zu if ($_SESSION...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    Hallo limanianer..

    Meine Frage zum Mittwoch lautet:
    Ist es sicher, wenn ich eine Session so: abfrage:

    if ($_SESSION["username"] == "Admin"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=/adminberiech.php\">";
    exit;
    }


    also ist es einigermasen sicher gegen Hackangriffe?
    (Hacker versucht sich in Adminbereich einzuhacken..)

    Natürlich ist das Passwort von "Admin" Sicher..


    Im /adminbereich.php, wird nochmals folgendermasen abgefragt:

    if ($_SESSION["username"] != "Admin"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=http:/www.domain.de\">";
    exit;
    }



    Danke für eure Unterstützung.. MFG Paddy






    Beitrag zuletzt geändert: 15.2.2012 5:33:36 von paddy-herrmy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. paddy-herrmy schrieb:
    Hallo limanianer..

    Meine Frage zum Mittwoch lautet:
    Ist es sicher, wenn ich eine Session so: abfrage:

    if ($_SESSION["username"] == "Admin"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=/adminberiech.php\">";
    exit;
    }


    also ist es einigermasen sicher gegen Hackangriffe?
    (Hacker versucht sich in Adminbereich einzuhacken..)


    Natürlich ist das Passwort von "Admin" Sicher..


    Im /adminbereich.php, wird nochmals folgendermasen abgefragt:

    if ($_SESSION["username"] != "Admin"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=http:/www.domain.de\">";
    exit;
    }



    Danke für eure Unterstützung.. MFG Paddy







    Ich denke es wäre besser, wenn du zu dem Benutzernamen Admin auch noch die ID abfragt und vielleicht in der Datenbank einen token generierst, den du dann überprüfst:


    $sql = "SELECT  *
               FROM  user WHERE 
               username = ' " . mysql_real_escape_string($_SESSION['username']) . " ' ";
    $ergebnis = mysql_query($sql); 
    $row = mysql_fetch_object($ergebnis); 
    
    $mysql-token = $row['token'];
    
    if ($_SESSION["username"] == "Admin" && $_SESSION["id"] = "Admin-ID" && mysql_token = "Dein-generierter-token"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=http:/www.domain.de\">";
    exit;
    }


    Es wird in der Datenbank nach dem Benutzername gesucht, der in der Session ist, wenn dieser nicht vorhanden ist gibt mysql schon mal einen Fehler aus, ist dieser vorhanden, wird die spalte "Token" (welche du noch erstellen musst) geholt und überprüft, ob sie mit deinem token in dem Code übereinstimmt. Ist das nicht so dann passiert gar nichts. Ist das doch so wirst du weitergeleitet...

    Den codeschnipsel oben müsstest du natürlich an deine Daten anpassen.


    Außerdem könntest du bei allem nochmal überprüfen, ob überhaupt eine session vorhanden ist, um Traffic zu sparen. Wenn keine Session da soll er auch nicht die Datenbank abfragen:

    if (isset($_SESSION['username']){
    $sql = "SELECT  *
               FROM  user WHERE 
               username = ' " . mysql_real_escape_string($_SESSION['username']) . " ' ";
    $ergebnis = mysql_query($sql); 
    $row = mysql_fetch_object($ergebnis); 
    
    $mysql-token = $row['token'];
    
    if ($_SESSION["username"] == "Admin" && $_SESSION["id"] = "Admin-ID" && mysql_token = "Dein-generierter-token"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=http:/www.domain.de\">";
    exit;
    }
    }



    Beitrag zuletzt geändert: 15.2.2012 7:46:44 von kill-a-teddy
  4. Die Abfrage via Username dürfte vollkommen sicher sein, da brauchst du eigentlich nicht noch Tokens abzufragen, auch wenn das in anderen Zusammenhängen sicher sinnvoll sein dürfte.

    Sind der Webserver und die Anwendung richtig konfiguriert und programmiert, so hat ein Angreifer keine Möglichkeit, eine Session zu erzeugen oder beliebig zu modifizieren. Solange es nur einen einzigen User mit dem Namen "Admin" gibt, und es für normale Benutzer auch keine Möglichkeit gibt, einen weiteren Nutzer mit identischem Namen anzulegen oder den eigenen Namen dahingehend zu ändern, kommt in dein Admin-Panel niemand rein.

    Natürlich wäre die Lösung via Rechte-System angenehmer, da du damit prinzipiell beliebig viele Admin-Accounts einrichten kannst. Dazu müsstest du dann noch in deiner User-Datenbank einen entsprechenden Eintrag für die Berechtigungs-Stufe erstellen (0: Normaler User, 1: Admin) und diesen dann im Admin-Panel abfragen.
  5. paddy-herrmy schrieb:
    ... also ist es einigermasen sicher gegen Hackangriffe?
    (Hacker versucht sich in Adminbereich einzuhacken..)
    natürlich nicht ;)
    Natürlich ist das Passwort von "Admin" Sicher..
    natürlich nicht ;)
    Im /adminbereich.php, wird nochmals folgendermasen abgefragt:
    if ($_SESSION["username"] != "Admin"){
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=http:/www.domain.de\">";
    exit;
    }
    ja und?

    @kill-a-teddy, @mermadalis :wow: ... ¿¿¿¿
    das rad ist seit jahrtausenden verfügbar und funktionstüchtig. wass sollen WIR noch daran rumfeilen? 8-eckig machen¿ (es reicht, wenn wir's lernen wie man das ding herstellt und anwendet ;)

    meine empfehlung für sicherheit ist: shiflett (oder adequat qualifiziertes) und im speziellen: phpsecurity (was noch immer shiflett ist [shiflett ist gut genug] ;)
  6. hemiolos schrieb:
    if ($_SESSION["username"] != "Admin"){


    Wie jetzt?
    Warum denn:
    !=
  7. kill-a-teddy schrieb:
    Wie jetzt?
    Warum denn:
    !=

    Damit will er die Leute die nicht Admin sind aus dem Adminbereich umleiten. Ist schon im originalpost so enthalten.
  8. sektor schrieb:
    Damit will er die Leute die nicht Admin sind aus dem Adminbereich umleiten. Ist schon im originalpost so enthalten.


    Das wage ich zu bestreiten... Die Zeile aus dem Originalpost:

    if ($_SESSION["username"] == "Admin"){



    Er will doch, dass nur der Admin weitergeleitet wird, mit eurem Code passiert genau das Gegenteil. Nur die normalen User werden in den Admin-Bereich weiter geleitet, wenn der session benutzername nicht admin ist...
  9. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    kill-a-teddy schrieb:
    Das wage ich zu bestreiten... Die Zeile aus dem Originalpost:

    if ($_SESSION["username"] == "Admin"){



    Du solltest dir den Eröffnungspost nochmal gaaanz genau durchlesen^^
    aud der Hauptseite wird der Username "Admin weitergeleitet um Adminbereich...
    -->
    if ($_SESSION["username"] == "Admin")

    (wenn Username = Admin, leite Weiter.)


    Und in der admin.php wird folgendes gefragt:
    if ($_SESSION["username"] != "Admin")

    (wenn username NICHT! admin, leite wieder zurück zur hauptseite, und breche ab..)
    :megarofl::megarofl::megarofl:

    So.. jetzt verständlich?
  10. technofan

    Moderator Kostenloser Webspace von technofan

    technofan hat kostenlosen Webspace.

    Es ist eigentlich vollkommen egal, ob du den Adminstatus, den Usernamen Admin oder sonst was abfragst... Bedingung ist bedingung und so lange da kein LIKE steht geht nur das Exakte Ergebnis durch.

    Viel wichtiger ist die Art der Weiterleitung...
    Wenn du den Adminbereich wirklich schützen willst, dann tu das mit head('Location: eineSeite.php'); und nicht mit HTML.
    HTML ist von außen mit jedem Programm (Seit neuesten auch mit dem FF) manipulierbar und lässt sich auch temporär stoppen, sodass keine Weiterleitung mehr stattfindet, auch wenn die Zeit auf 0 gesetzt wird... der Mist wird ja trozdem erstmal so geladen.
    bei PHP wird der Client vom Server aus weitergeleitet und PHP kannn nicht so schnell manipuliert werden, erst recht nicht, wenn diese Weiterleitung fest definiert ist und nicht von Eingaben gesteuert wird.
  11. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    technofan schrieb:
    Viel wichtiger ist die Art der Weiterleitung...
    Wenn du den Adminbereich wirklich schützen willst, dann tu das mit head('Location: eineSeite.php'); und nicht mit HTML.


    jup danke für deine Antwort..
    Das ist echt lustig.. Gerade eben hab ich genau das so umgeändert^^ (kurz bevor du es geschrieben hast):lol:

    Natürlich wäre die Lösung via Rechte-System angenehmer, da du damit prinzipiell beliebig viele Admin-Accounts einrichten kannst.

    Ein rechtesystem ist momentan noch nicht notwendig, da das ja kein forum ist.. buttonklick.de und ich eigendlich nur einen Adminacc. brauche^^

    grüssle, Paddy:love:
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!