Video Tutorial - PHP Registrierung | Loginsystem

Hallo,

Das Script ist sicher im Bezug auf MySQL Injections, da Prepared Statements verwendet werden. D.h die Strings (Zeichketten) die aus Benutzereingaben stammen werden vom MySQL Treiber automatisch escaped.

Ebenfalls werden alle Benutzereingaben die wieder auf der Seite angezeigt werden durch die Funktion htmlspecialchars() in HTML Entitäten umgewandelt (nicht alle Zeichen, aber alle Sicherheitsrelevanten).
Dadurch wird eine XSS - Attacke verhindert.

Intern wird von dem Passwort nur der Hash (SHA256) mit Salt gespeichert, dadurch wird es erschwert bis nahezu unmöglich das Passwort wieder sichtbar zu machen, falls jemand die Datenbank (wie auch immer) klaut.

Das heißt, das Script beachtet alle Standardsicherheitsmaßnahmen.

Wogegen es nicht geschützt ist, ist Spam, d.h der Benutzer könnte beliebig viele Accounts in entsprechender Zeit durch einen Bot erstellen lassen.
 
Hey Danke für deine schnelle Antwort. Die meisten hätten nur geschrieben ist sicher oder ist nicht sicher, super das du erklärst wodurch es sicher ist und was diese Dinge genau machen bzw. bringen.

Vor Bots sicher geht doch bestimmt über Captcha, kann man das nicht irgendwie simpel integrieren oder kennste dazu ein Tut?
 
Hallo,
ja Captchas sind ein guter Ansatz und das ist eigentlich auch relativ simpel implementierbar. Die Grundidee ist ein Bild mit PHP zu generieren und den Code der auf dem Bild steht in einer Session zu speichern. Dann muss nur noch verglichen werden ob der Code im Formular der gleiche ist wie der aus der Session.

Eine weitere Möglichkeit, die man auch vornehmen sollte um sicher zu gehen, dass das Formular auch wirklich über die Website abgesendet wurde ist "tokens" zu verwenden. Das sind einfach nur Zeichenketten die im Formular per "hidden field" übergeben werden und ebenfalls in der Session gespeichert sind. Damit kann man dann auch wieder vergleichen ob die Daten übereinstimmen.
 
Hast du ne Ahnung wo man sowas als Tut bekommt?

Oder mal ne dreiste Frage: Warum hast du diese Sachen bei dir nicht eingebaut, zu komplex, zu umfangreich? ;)
 
Hallo,
in dem Video soll es darum gehen die Grundvorgänge einer Benutzerregistrierung zu zeigen.
Tokens und Captchas sind dazu da Spam abzuhalten, so gut es geht, diese Techniken sind zwar relativ simpel gehören aber im Formularverarbeitungsbereich schon eher in die Abteilung fortgeschritten.

Ein Tutorial kenne ich leider keines, vielleicht mache ich aber mal eins dazu.
 
Intern wird von dem Passwort nur der Hash (SHA256) mit Salt gespeichert, dadurch wird es erschwert bis nahezu unmöglich das Passwort wieder sichtbar zu machen, falls jemand die Datenbank (wie auch immer) klaut.

könnte man anstelle eines Salts auch einfach die doppelte Eingabe nehmen oder die Eingabe rückwärts, denn wenn ein Hacker deine Seite hackt, sieht er doch auch meine Scripts und somit auch die Zeile $salt='ifzgweufgzwfuwq';

&noch eine Frage, ist md5($passwort); sicherer als SHA256?

Vielen Dank für das Video-Tutorial!
 
könnte man anstelle eines Salts auch einfach die doppelte Eingabe nehmen oder die Eingabe rückwärts, denn wenn ein Hacker deine Seite hackt, sieht er doch auch meine Scripts und somit auch die Zeile $salt='ifzgweufgzwfuwq';

&noch eine Frage, ist md5($passwort); sicherer als SHA256?

Vielen Dank für das Video-Tutorial!

Könnte man theoretisch natürlich auch machen, bzw. zusätzlich dazu ergänzen. Man unterscheidet zwischen dynamischen und statischen Salts. Dein Vorschlag wäre ein dynamischer Salt, oft verwendet man aber dazu die UserID.

SHA256 ist sicherer als md5().

Wenn ein Hacker soweit in die Seite eindringt, dass er an deine PHP Files kommt, dann ist eh alles zu spät ;). Denn dann hast du eine massive Sicherheitslücke im Server selbst oder er ist irgendwie an dein FTP Passwort gekommen.
 
Das heisst, all diese Sicherheitsabfragen machen wir hauptsächlich fürs MySQL? Wegen den Salt meinte ich jetzt fast das der Dynamische unsicherer ist, weil wenn ich jetzt als Salt die Adresse oder Username nehme kann der Hacker doch denn Salt vielleicht bestimmen wenn er selbst einen Account erstellt, jedoch wenn der Salt statisch im .php file ist, wäre das nicht besser?
 
Oft macht man beides, dynamischer und statischer Salt, aber eigentlich ist ein statischer Salt schon auch alleine sicher, wenn man den SHA256 Algorithmus verwendet.

Und ja, diese Sicherheitsabfragen sind hauptsächlich für die Datenbank. Dort muss ausgeschlossen sein, dass ein User eigene Statements mit einbringen kann. Zusätzlich muss man dann aber natürlich noch bei der Ausgabe von Benutzerdaten wieder darauf achten, diese auch nicht ungefiltert auszugeben.

Der Grundsatz ist immer, Daten die von Benutzern stammen, filtern, validieren, escapen und dann erst entsprechend weiter verarbeiten.
 
Zurück