kostenloser Webspace werbefrei: lima-city


phpbb/sicheres login programmieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    disod

    disod hat kostenlosen Webspace.

    Mehrere Fragen:
    bei phpbb foren gibt es eine sicherheitsl?cke(siehe: http://www.phpbb.com/phpBB/viewtopic.php?f=14&t=267563) dort steht man soll

    if( $sessiondata['autologinid'] == $auto_login_key )

    durch

    if( $sessiondata['autologinid'] === $auto_login_key )

    ersetzten.
    Daher meine erste frage: was bewirkt das === 3fache gleichzeichen?. Ich kenn nur das einfache(Zuweisung) und das zweifache (Vergleich)

    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?

    Mfg disod
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. k*****i


    Mehrere Fragen:
    bei phpbb foren gibt es eine sicherheitsl?cke(siehe: http://www.phpbb.com/phpBB/viewtopic.php?f=14&t=267563) dort steht man soll

    if( $sessiondata['autologinid'] == $auto_login_key )

    durch

    if( $sessiondata['autologinid'] === $auto_login_key )

    ersetzten.
    Daher meine erste frage: was bewirkt das === 3fache gleichzeichen?. Ich kenn nur das einfache(Zuweisung) und das zweifache (Vergleich)

    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?

    Mfg disod


    so weit cih weiss gibt es keine 3 befehle in einer if abfrage deswegen w?rde ich denken die haben sich evrtippt oder was neues endeckt was ich jetzt auchw issen will, cih w?rde es erstmall lasse.

    MfG

    KRaeusi
  4. Autor dieses Themas

    disod

    disod hat kostenlosen Webspace.

    schau mal auf: http://de3.php.net/manual/de/language.operators.comparison.php

    nur den unterschied zwischen === und == peil ich net
  5. thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.


    schau mal auf: http://de3.php.net/manual/de/language.operators.comparison.php

    nur den unterschied zwischen === und == peil ich net


    In PHP gibt es zwei Arten, Variablen zu vergleichen. Zun?chst mit ==. Damit pr?ft man, ob der Inhalt zweier Variablen der gleiche ist. Manchmal reicht das nicht, und man vergleicht mit ===. So stellt man fest, ob nicht nur der Inhalt, sondern auch der Typ Variablen der gleiche ist.
  6. k*****i



    schau mal auf: http://de3.php.net/manual/de/language.operators.comparison.php

    nur den unterschied zwischen === und == peil ich net


    In PHP gibt es zwei Arten, Variablen zu vergleichen. Zun?chst mit ==. Damit pr?ft man, ob der Inhalt zweier Variablen der gleiche ist. Manchmal reicht das nicht, und man vergleicht mit ===. So stellt man fest, ob nicht nur der Inhalt, sondern auch der Typ Variablen der gleiche ist.


    ?

    was n?tzt mir es wenn cih den typ vergleiche und welchen genaueren sinn aht das, kannste mal bitte das erkl?#ren?

    MfG

    Kraeusi
  7. lordoflima

    Admin Kostenloser Webspace von lordoflima

    lordoflima hat kostenlosen Webspace.

    Wenn du PHP verstehen w?rdest, w?sstest du es:

    Beispiel:

    Du willst irgendwas machen, wenn strlen($x) == 0.

    Code:
    if(strlen($x) == 0)
    {
    }

    Wenn $x aber jetzt eine Ressource ist, wird false ausgegeben. (false == 0)

    Jetzt wird die Ressource bearbeitet, es k?nnte Fehler geben oder das System wird kompromittiert.

    Wenn die Bedingung jetzt

    if(strlen($x) === 0)
    {
    }

    lautet, dann wird die schleife nur durchlaufen, wenn strlen($x) ein Integer-Wert hat.

    Logisch.

    PS: Don't feed the Troll.
  8. Beispiel f?r die langsam Denkenden:

    $a = 5;
    $b = '5';

    // 5 und '5' sind von verschiedenem Typ

    if($a == $b) print("Gleicher Wert!");

    if($a === $b) print("Gleicher Typ!");
    else print("Ungleicher Typ");

    Zus?tzlich zum Link von thoba ist auch dieser hier aufschlussreich:
    http://de.php.net/manual/de/types.comparisons.php

    ====================================
    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?


    1. ?bertragung des Passwortes verschl?sseln (Geht nur, wenn der Server SSL unterst?tzt).

    2. Die auf dem Server abgelegten Passw?rter verschl?sseln (z.B. mit crypt()).

    3. Mindestl?ngen vorsehen, m?glichst verschiedene Zeichen vorsehen, Passwort darf nicht gleich dem Usernamen sein. Das alles kann man bei der Passwortvergabe abfragen und "bem?ngeln", so dass die User dazu erzogen werden, sicherere Passw?rter zu nehmen.

    MfG
    alopex

  9. lordoflima

    Admin Kostenloser Webspace von lordoflima

    lordoflima hat kostenlosen Webspace.


    Beispiel f?r die langsam Denkenden:

    $a = 5;
    $b = '5';

    // 5 und '5' sind von verschiedenem Typ

    if($a == $b) print("Gleicher Wert!");

    if($a === $b) print("Gleicher Typ!");
    else print("Ungleicher Typ");

    Zus?tzlich zum Link von thoba ist auch dieser hier aufschlussreich:
    http://de.php.net/manual/de/types.comparisons.php

    ====================================
    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?


    1. ?bertragung des Passwortes verschl?sseln (Geht nur, wenn der Server SSL unterst?tzt).

    2. Die auf dem Server abgelegten Passw?rter verschl?sseln (z.B. mit crypt()).

    3. Mindestl?ngen vorsehen, m?glichst verschiedene Zeichen vorsehen, Passwort darf nicht gleich dem Usernamen sein. Das alles kann man bei der Passwortvergabe abfragen und "bem?ngeln", so dass die User dazu erzogen werden, sicherere Passw?rter zu nehmen.

    MfG
    alopex




    Es gibt ein Javascript, mit dem kann man das Kennwort vor dem ?bertragen md5-verschl?sseln (128 Bit wenn ich mich nicht irre.)
  10. k*****i


    Beispiel f?r die langsam Denkenden:

    $a = 5;
    $b = '5';

    // 5 und '5' sind von verschiedenem Typ

    if($a == $b) print("Gleicher Wert!");

    if($a === $b) print("Gleicher Typ!");
    else print("Ungleicher Typ");

    Zus?tzlich zum Link von thoba ist auch dieser hier aufschlussreich:
    http://de.php.net/manual/de/types.comparisons.php

    ====================================
    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?


    1. ?bertragung des Passwortes verschl?sseln (Geht nur, wenn der Server SSL unterst?tzt).

    2. Die auf dem Server abgelegten Passw?rter verschl?sseln (z.B. mit crypt()).

    3. Mindestl?ngen vorsehen, m?glichst verschiedene Zeichen vorsehen, Passwort darf nicht gleich dem Usernamen sein. Das alles kann man bei der Passwortvergabe abfragen und "bem?ngeln", so dass die User dazu erzogen werden, sicherere Passw?rter zu nehmen.

    MfG
    alopex



    thx habs gerafft...

    danke

    MfG

    Kraeusi
  11. lordoflima schrieb:
    [...]
    Es gibt ein Javascript, mit dem kann man das Kennwort vor dem ?bertragen md5-verschl?sseln (128 Bit wenn ich mich nicht irre.)

    Nein Lord, du irrst nicht!
    -> http://aktuell.de.selfhtml.org/artikel/javascript/md5/


    disod schrieb:
    [...]
    2. Frage:

    Was sollte man bei einem sicheren login(nat?rlich mit html und php) alles beachten (programmtechnisch)?

    Mfg disod

    Einen wirklichen sicheren Login kannst du nicht machen!
    Es kann so gut wie alles geknackt werden, aber man keinen einen guten Schutz einbauen.
    Am besten die ?bertragung der Passw?rter ?ber SSL senden, wie Alopex schon sagte. Wenn das nicht geht, dann das Javascript hinter dem o.g. Link benutzten.
    Eine eigene Einweg Vershl?sselung ist meist auch besser, da es dann keine fertigen Programme zum knacken gibt.
    Das Passwort kann man auch mehrmals verschl?sseln. Vllt sogar mit verschiedenen Funktionen.

    Aber man sollte auch daran denken, dass man f?r gew?hnlich keine extrem geheimen und wichtigen Daten hat und es somit auch nicht so relevant ist, diese zu sch?tzen!
  12. Autor dieses Themas

    disod

    disod hat kostenlosen Webspace.


    Es gibt ein Javascript, mit dem kann man das Kennwort vor dem ?bertragen md5-verschl?sseln (128 Bit wenn ich mich nicht irre.)


    die Passw?rter clientseitig mit md5 verschl?sseln, halte ich f?r ne nicht so gute idee. Wenn die datenbank ma nicht ganz sicher ist, kann sich jeder depp mitn bills html kenntnissen einloggen. Wenn dann w?re doch RSA cool...aber dasd?rfte zu aufwendig sein...und au?erdem patentgesch?tzt(?)

    EDIT:

    soll man die sessionid besser per cookie oder pet http-get ?bertragen?

    Beitrag ge?ndert am 7.07.2005 03:32 von disod
  13. k*****i



    Es gibt ein Javascript, mit dem kann man das Kennwort vor dem ?bertragen md5-verschl?sseln (128 Bit wenn ich mich nicht irre.)


    die Passw?rter clientseitig mit md5 verschl?sseln, halte ich f?r ne nicht so gute idee. Wenn die datenbank ma nicht ganz sicher ist, kann sich jeder depp mitn bills html kenntnissen einloggen. Wenn dann w?re doch RSA cool...aber dasd?rfte zu aufwendig sein...und au?erdem patentgesch?tzt(?)

    EDIT:

    soll man die sessionid besser per cookie oder pet http-get ?bertragen?

    Beitrag ge?ndert am 7.07.2005 03:32 von disod


    wieso willst du eine session id ?ber http-get verbeiten?

    die gefunktionen w?rde ich nur bei formularen benutze und dann auch eherpost

    mit den session w?rde cih da dann schone her cookies verwenden aber wiesobleibst du nicht bei sessions?

    MfG

    KRaeusi
  14. m*********1

    Wie kann ich hiermit Passw?rter verschl?sseln?

    crypt()

    Kann mir das einer sagen?
  15. Huch, wo fange ich jetzt zuerst an? Mal der Reihe nach:

    @lord(oflima)

    Danke f?r den Tipp. Dass sowas mit JavaScript m?glich ist, war mir bisher nicht bewusst. Sch?ines Ding!

    @lucas9991

    Danke, dass du den Link dazu gepostet hast.

    @alle beide
    Einen Nachteil hat die Methode mit JS: Sicherheitsbewusste Menschen schalten das normalerweise ab. Und so jemanden davon zu ?berzeugen, JavaScript zur Erh?hung der Sicherheit beim ?bertragen von Passw?rtern wieder einzuschalten, d?rfte schwer werden.

    @mastermoul

    $hash = crypt($passwort_im_klartext);
    http://de.php.net/manual/de/function.crypt.php

    In Verbindung mit dem MD5-JavaScript ist vielleicht md5() besser geeignet:
    http://de.php.net/manual/de/function.md5.php

    Das geht normalerweise so vor sich:

    1.) Benutzername und Passwort wandern zum Server (vom Formular aus).

    2. Der Server pr?ft in seiner Benutzernamen-Passwort-Liste (aus Datenbank oder Datei), ob der Benutzername vorhanden ist. Wenn nicht: Fehlermeldung!

    3. Ist der Benutzer vorhanden, wird das ?bermittelte (Klartext-)Passwort mit crypt() verschl?sselt.

    4. Das verschl?sselte Passwort wird mit dem ebenfalls schon verschl?sselt vorliegendem Wert in der Liste verglichen. Sind beide verschl?sselten Werte gleich, ist das Passwort richtig.

    Bei der oft verwendeten Methode, im Klartext vorliegende Passw?rter zu vergleichen, besteht das Risiko, dass die Passw?rter in der Liste ausgesp?ht werden k?nnen. Bei verschl?sselten Passw?rtern ist das schwierig (aber leider nicht unm?glich).

    @disod

    die Passw?rter clientseitig mit md5 verschl?sseln, halte ich f?r ne nicht so gute idee. Wenn die datenbank ma nicht ganz sicher ist, kann sich jeder depp mitn bills html kenntnissen einloggen.


    HTTPS (SSL) funktioniert auch so und ist sehr sicher. Gerade die Verschl?sselung des Passwortes (und auch des Benutzernamens) schon auf dem Client ist sehr sicher. Eben weil dann in der Datenbank nur noch verschl?sselte Werte stehen, ist das Knacken schwieriger, als wenn dort alles im Klartext lesbar steht. Das man eine Textdatei mit sensiblen Daten (wenn man sowas zum Speichern der Liste einer Datenbank vorzieht) nicht im WWW-Root speichert, ist eigentlich klar.

    Wenn dann w?re doch RSA cool...aber dasd?rfte zu aufwendig sein...und au?erdem patentgesch?tzt(?)


    Soweit ich wei?, ist RSA veraltet, und daher ist es nicht mehr empfehlenswert es anzuwenden.

    MfG
    alopex

    P.S. @lordoflima:
    Na toll gro?er Meister -- jetzt kann wieder jeder sehen, wann ich meine Tipp-, Schlechtreib- und Schusselfehler ausgeb?gelt habe ... :slant:

    Beitrag ge?ndert am 7.07.2005 12:26 von alopex
  16. Autor dieses Themas

    disod

    disod hat kostenlosen Webspace.



    wieso willst du eine session id ?ber http-get verbeiten?

    die gefunktionen w?rde ich nur bei formularen benutze und dann auch eherpost

    mit den session w?rde cih da dann schone her cookies verwenden aber wiesobleibst du nicht bei sessions?

    MfG

    KRaeusi

    die Session-ID muss ja jedesmal neu ?bertragen werden, damit der Server wei?, dass sich ein berechtigter user am anderen ende befindet...n ip is mir da zu wenig, da es ja heutzutage tusende router und proxys gibt


    ...und manche leute haben cookies abgeschaltet


    mfg disod
  17. 0******a

    alopex schrieb:
    Soweit ich wei?, ist RSA veraltet, und daher ist es nicht mehr empfehlenswert es anzuwenden.

    RSA veraltet und nicht empfehlenswert...? Wahrscheinlich verwechselst du das mit DES, was wirklich veraltet ist (zumindest in der urspr?nglichen 64-Bit Version). RSA ist sicher und empfehlenswert (RSA liegt beispielsweise der Software PGP zugrunde), allerdings ist es ein asymetrisches Verschl?sselungsverfahren und daher f?r die in diesem Thread ben?tigten Aufgaben viel zu umst?ndlich. Man sollte hier nur auf symetrische Verfahren (z.B. AES (Rinjndael) oder Blowfish o.?.) oder Hashverfahren (MD5 oder besser SHS (SHA-1, SHA-128, SHA-256 oder SHA-512) u.?.) zur?ckgreifen.
  18. Autor dieses Themas

    disod

    disod hat kostenlosen Webspace.

    k?nntest du mir n paar adressen geben, wo ich mehr ?ber diese algorithmen erfahren kann(optimal w?ren programm-beispiele)

    disod

  19. [...]

    die Passw?rter clientseitig mit md5 verschl?sseln, halte ich f?r ne nicht so gute idee. Wenn die datenbank ma nicht ganz sicher ist, kann sich jeder depp mitn bills html kenntnissen einloggen. Wenn dann w?re doch RSA cool...aber dasd?rfte zu aufwendig sein...und au?erdem patentgesch?tzt(?)

    Wie soll man mit HTML Kenntnissen die Passw?rter knacken? :confused:
    Dir ist klar, das die md5 Verschl?sselung "eigentlich"(, da man sie auch knacken kann,) eine Einweg Verschl?sselung ist.


    EDIT:

    soll man die sessionid besser per cookie oder pet http-get ?bertragen?

    Beitrag ge?ndert am 7.07.2005 03:32 von disod

    Kommt drauf an!
    Ich w?rde Cookies vorziehen, da es einfacher ist, da die URL dann nicht zu lang wird und beim kopieren der URL nicht gleich die Session ID mit kopiert wird.
    Aber im Endeffekt ist es doch egal, denn man kann beides sniffen.
  20. 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!