Registrierungsformular und alles was damit zu tun hat
Moin Leute,
Ich möchte gerne ein Registrierungsformular basteln. Allerding wird das etwas komplexer
Die Aufgabe:
-Formular, das Daten in eine MySql DB schreibt, eine Email an den User schickt, in der Der Bestätigungscode drinne ist (Der ja auch irgendwo her kommt) Dann muss der Account freigeschaltet werden.
1. Wie läuft das grundsätzlich ab?
2. vllt. ein Scriptbespiel.
Schonmal herzlichen Dank
Mfg Nippie
Ich möchte gerne ein Registrierungsformular basteln. Allerding wird das etwas komplexer
Die Aufgabe:
-Formular, das Daten in eine MySql DB schreibt, eine Email an den User schickt, in der Der Bestätigungscode drinne ist (Der ja auch irgendwo her kommt) Dann muss der Account freigeschaltet werden.
1. Wie läuft das grundsätzlich ab?
2. vllt. ein Scriptbespiel.
Schonmal herzlichen Dank
Mfg Nippie
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43527
Url: https://administrator.de/contentid/43527
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo,
1) Du musst eine Datenbankverbindung mit PHP aufbauen. Mit SQL-Syntax lässt sich die verbundene Datenbank dann bearbeiten.
Für Datenbankverbindungen hat PHP Funktionen im Angebot:
http://de2.php.net/mysql
2) Emails werden über das SMTP-Protokoll versendet, auch dafür hat PHP-Funktionen:
http://de2.php.net/manual/de/ref.mail.php
3) Was für ein Account soll den freigeschaltet werden???
Ansonsten: Arbeite Dich in die PHP-Funktionen zu MySQL und Mail ein und starte einfach mit Code-Beispielen, die sich im Netz zuhauf finden (googlen!).
Gruß,
Tim
1) Du musst eine Datenbankverbindung mit PHP aufbauen. Mit SQL-Syntax lässt sich die verbundene Datenbank dann bearbeiten.
Für Datenbankverbindungen hat PHP Funktionen im Angebot:
http://de2.php.net/mysql
2) Emails werden über das SMTP-Protokoll versendet, auch dafür hat PHP-Funktionen:
http://de2.php.net/manual/de/ref.mail.php
3) Was für ein Account soll den freigeschaltet werden???
Ansonsten: Arbeite Dich in die PHP-Funktionen zu MySQL und Mail ein und starte einfach mit Code-Beispielen, die sich im Netz zuhauf finden (googlen!).
Gruß,
Tim
Hallo,
Du könntest zum Beispiel aus dem Namen des Benutzers einen md5-Hash erzeugen und den als Aktivierungscode verwenden:
http://de.php.net/md5
Das wäre dann etwas in der Art: "1f3870be274f6c49b3e31a0c6728957f"
Wenn die Frage sich jetzt darauf bezog, wie man damit den "Account" freischaltet, kann ich Dir nicht weiterhelfen, da Du nicht gesagt hast, um was für eine Art Account es sich handelt???
Gruß,
Tim
WIE generiere ich einen
bestätigungscode, der dann zum
aktivieren des accounts benutzt werden soll?
bestätigungscode, der dann zum
aktivieren des accounts benutzt werden soll?
Du könntest zum Beispiel aus dem Namen des Benutzers einen md5-Hash erzeugen und den als Aktivierungscode verwenden:
http://de.php.net/md5
Das wäre dann etwas in der Art: "1f3870be274f6c49b3e31a0c6728957f"
Wenn die Frage sich jetzt darauf bezog, wie man damit den "Account" freischaltet, kann ich Dir nicht weiterhelfen, da Du nicht gesagt hast, um was für eine Art Account es sich handelt???
Gruß,
Tim
Hallo,
zunächst einmal muss ich sagen: Du solltest Dich erst einmal weiter in die Materie einarbeiten, denn ich habe nicht wirklich Lust, Dir jeden Schritt einzeln zu erklären oder zu programmieren.
Wenn Du einen Account für http-Authentifizierung freischaltest: Machst Du das über htaccess?
Dann könnte der Link auf eine gleichnamige php-Seite führen, die - wenn sie aufgerufen wird - der htusers und htgroups-Datei einen weiteren Eintrag hinzufügt.
Bin mir gerade allerdings nicht sicher, ob das in Sachen Sicherheit die beste Möglichkeit wäre.
Du müsstest Dich auf jeden Fall noch in das Öffnen von Dateien zum Schreiben usw. einarbeiten.
Die PHP-Seite, die ich oben schon für Beispiele herangezogen habe, ist zum PHP lernen ganz OK. Des weiteren würde ich vorschlagen, dass Du mal das Programmieren fortfährst und zu weiteren eng abgegrenzten Einzelproblemen (zum Beispiel: "Wie übergebe ich einer Mail mit PHP folgenden Inhalt...?") neue Fragen aufmachst: Mit Quellcode, damit man Dir evtl. sagen kann, was falsch ist oder was besser zu machen ist.
Gruß,
Tim
zunächst einmal muss ich sagen: Du solltest Dich erst einmal weiter in die Materie einarbeiten, denn ich habe nicht wirklich Lust, Dir jeden Schritt einzeln zu erklären oder zu programmieren.
Wenn Du einen Account für http-Authentifizierung freischaltest: Machst Du das über htaccess?
Dann könnte der Link auf eine gleichnamige php-Seite führen, die - wenn sie aufgerufen wird - der htusers und htgroups-Datei einen weiteren Eintrag hinzufügt.
Bin mir gerade allerdings nicht sicher, ob das in Sachen Sicherheit die beste Möglichkeit wäre.
Du müsstest Dich auf jeden Fall noch in das Öffnen von Dateien zum Schreiben usw. einarbeiten.
Die PHP-Seite, die ich oben schon für Beispiele herangezogen habe, ist zum PHP lernen ganz OK. Des weiteren würde ich vorschlagen, dass Du mal das Programmieren fortfährst und zu weiteren eng abgegrenzten Einzelproblemen (zum Beispiel: "Wie übergebe ich einer Mail mit PHP folgenden Inhalt...?") neue Fragen aufmachst: Mit Quellcode, damit man Dir evtl. sagen kann, was falsch ist oder was besser zu machen ist.
Gruß,
Tim
Hi,
grundsätzlich ist es mit dem phpmailer (http://phpmailer.sourceforge.net/) eigentlich am einfachsten, man braucht das Rad ja nicht neu erfinden. ;)
Zu dem md5-Hash: Der Aktivierungscode ist ja dazu da, zu verhindern, dass automatisiert dutzende von Benutzern angelegt werden. Insofern ist es vllt nicht die beste Möglichkeit, den Hash vom Nicknamen (wie zB oben "apple"->"1f3870be274f6c49b3e31a0c6728957f") als Aktivierungscode zu verwenden, das System muss vom potentiellen Angreifer nur einmal durchschaut werden. Ein Zufallshash/-string wäre zB eine Möglichkeit.
Natürlich ist das alles rein theoretisch, da wohl kaum jemand solch eine Attacke durchführen würde, das ist ja mehr als unwahrscheinlich. Nur so vom Prinzip her =)
grundsätzlich ist es mit dem phpmailer (http://phpmailer.sourceforge.net/) eigentlich am einfachsten, man braucht das Rad ja nicht neu erfinden. ;)
Zu dem md5-Hash: Der Aktivierungscode ist ja dazu da, zu verhindern, dass automatisiert dutzende von Benutzern angelegt werden. Insofern ist es vllt nicht die beste Möglichkeit, den Hash vom Nicknamen (wie zB oben "apple"->"1f3870be274f6c49b3e31a0c6728957f") als Aktivierungscode zu verwenden, das System muss vom potentiellen Angreifer nur einmal durchschaut werden. Ein Zufallshash/-string wäre zB eine Möglichkeit.
Natürlich ist das alles rein theoretisch, da wohl kaum jemand solch eine Attacke durchführen würde, das ist ja mehr als unwahrscheinlich. Nur so vom Prinzip her =)
Hallo,
MD5-Hashes sind sogar sehr sicher, da sie eine Quersumme eines Strings darstellen. vereinfachtes Beispiel: Weißt Du, ob die die "12" jetzt die Quersumme von 93, 39, 48, 84 ... war?.
Ein Link sollte natürlich nur einen neuen Account anlegen, wenn dafür auf dem Server schon ein Ticket existiert, sprich: Nutzer beantragt Account, Server erstellt dazu eine Art "Ticket", das nach soundsoviel Stunden abläuft. Wenn Nutzer in der Zeit einen Link anklickt, dann wird Account angelegt.
Das System ist sicher!
Gruß,
Tim
Zu dem md5-Hash: Der Aktivierungscode ist ja
dazu da, zu verhindern, dass automatisiert
dutzende von Benutzern angelegt werden.
Insofern ist es vllt nicht die beste
Möglichkeit, den Hash vom Nicknamen (wie
zB oben
"apple"->"1f3870be274f6c49b3e31a0c6728957f")
als Aktivierungscode zu verwenden, das System
muss vom potentiellen Angreifer nur einmal
durchschaut werden. Ein Zufallshash/-string
wäre zB eine Möglichkeit.
dazu da, zu verhindern, dass automatisiert
dutzende von Benutzern angelegt werden.
Insofern ist es vllt nicht die beste
Möglichkeit, den Hash vom Nicknamen (wie
zB oben
"apple"->"1f3870be274f6c49b3e31a0c6728957f")
als Aktivierungscode zu verwenden, das System
muss vom potentiellen Angreifer nur einmal
durchschaut werden. Ein Zufallshash/-string
wäre zB eine Möglichkeit.
MD5-Hashes sind sogar sehr sicher, da sie eine Quersumme eines Strings darstellen. vereinfachtes Beispiel: Weißt Du, ob die die "12" jetzt die Quersumme von 93, 39, 48, 84 ... war?.
Ein Link sollte natürlich nur einen neuen Account anlegen, wenn dafür auf dem Server schon ein Ticket existiert, sprich: Nutzer beantragt Account, Server erstellt dazu eine Art "Ticket", das nach soundsoviel Stunden abläuft. Wenn Nutzer in der Zeit einen Link anklickt, dann wird Account angelegt.
Das System ist sicher!
Gruß,
Tim
Ein Link sollte natürlich nur einen
neuen Account anlegen, wenn dafür auf
dem Server schon ein Ticket existiert,
sprich: Nutzer beantragt Account, Server
erstellt dazu eine Art "Ticket",
das nach soundsoviel Stunden abläuft.
Wenn Nutzer in der Zeit einen Link anklickt,
dann wird Account angelegt.
Eben das halte ich für die Schwachstelle. Ein Script beantragt 120 Accounts und öffnet die entsprechenden Seiten, auf denen der Account aktiviert wird also 'register.php?activation='.md5($nick) ... Damit hätte man mal eben 120 Accounts, ohne eine funktionierende Mailadresse angegeben zu haben, was der Accountkey ja verhindern sollte. Bei nem zufälligen String als Accountkey müsste man erst 120 verschiedene Mailadressen einrichten. ;)neuen Account anlegen, wenn dafür auf
dem Server schon ein Ticket existiert,
sprich: Nutzer beantragt Account, Server
erstellt dazu eine Art "Ticket",
das nach soundsoviel Stunden abläuft.
Wenn Nutzer in der Zeit einen Link anklickt,
dann wird Account angelegt.
Wie gesagt ist das aber alles ziemlich theoretisch, sodass man eigentlich auch md5(Nick) verwenden kann.
Hallo,
häng noch mit getdate() die seit 01.01.1970 vergangenen Sekunden an den zu hashenden String an und kein Bot der Welt kann mehr was machen, weil getdate schon eine Sekunde später ein anderes Ergebnis erzeugt
Gruß,
Tim
häng noch mit getdate() die seit 01.01.1970 vergangenen Sekunden an den zu hashenden String an und kein Bot der Welt kann mehr was machen, weil getdate schon eine Sekunde später ein anderes Ergebnis erzeugt
Gruß,
Tim