Sicheres PHP Login-System

  • Hallo,


    ich beschäftige mich schon seit einiger Zeit mit HTML und wollte mich jetzt mal an eine dynamische Website ransetzen.
    Das Problem hierbei ist, dass ich nicht genau weiß, welche Lücken jemand bei einem Login-System ausnutzen kann.
    Ich habe mich schon etwas im Forum umgeschaut und das gefunden:
    Nützliche PHP-Codeschnipsel


    Könnte man diese Funktionen für eine öffentlich zugängliche Seite benutzen, ohne das Risiko, dass sich unerwünschte Personen Zugang verschaffen?



    MfG

  • Ja, PDO ist sehr gut :)


    Und solange du alle statements richtig vorbereitest ("prepare" nutzt) kann man schonmal so etwas wie eine SQL-Injection nicht machen.


    Aber musst halt auch auf noch mehr Dinge achten, dass kann dir eine Library nicht abnehmen.


    Wie z.B. dass du keinen Text anzeigen lässt ohne ihn zu escapen, sonst kann man XSS Angriffe versuchen ^^


    htmlspecialchars ist da das Stichwort :)


    Aber bezüglich auf das Login an sich, ja das geht in Ordnung :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Meinst du mit auf noch mehr Dinge achten, nur die htmlspecialchars oder noch andere Sachen, wenn ja welche?


    Mit htmlspecialchars meinst so es wahrscheinlich so, oder?:
    http://stackoverflow.com/a/6249173



    MfG

  • Wichtig ist das du jede noch so kleine Sicherheitslücke, ich achte immer auf folgendes:


    • Wirklich alles an Nutzereingaben prüfen (prepared statements, zeichen filtern usw)


    • PHP-Code exit-en bzw escapen


    Es gibt noch andere Dinge, manche Sachen sind auch spezifisch je nach Code.


    Der gepostete Code ist aber eigentlich absolut sicher solange du Eingaben prüfst, die Webserver richtig konfigurierst usw

  • PDO ist sogar so schlau das man die queries nicht mal via prepare vorbereiten muss, ich hatte das mal mit einem kumpel ausprobiert.
    Aber dennoch ist es besser prepare zu verwenden :).


    Zum Thema XSS das betrifft jedoch nur Eingaben vom User, welche für andere User dargestellt wird. Bsp: Chats oder das erstellen von Artikeln , Bewertungen etc...