nippie
Goto Top

Registrierungsformular und alles was damit zu tun hat

Moin Leute,
Ich möchte gerne ein Registrierungsformular basteln. Allerding wird das etwas komplexerface-big-smile

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)face-wink Dann muss der Account freigeschaltet werden.

1. Wie läuft das grundsätzlich ab?
2. vllt. ein Scriptbespiel.


Schonmal herzlichen Dank

Mfg Nippie

Content-ID: 43527

Url: https://administrator.de/contentid/43527

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

11078
11078 02.11.2006 um 08:10:46 Uhr
Goto Top
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
Nippie
Nippie 02.11.2006 um 11:44:00 Uhr
Goto Top
Ok....

Aber eine Frage habe ich nochface-big-smile:

WIE generiere ich einen bestätigungscode, der dann zum aktivieren des accounts benutzt werden soll?

Mfg Nippie
11078
11078 02.11.2006 um 11:59:28 Uhr
Goto Top
Hallo,

WIE generiere ich einen
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
Nippie
Nippie 02.11.2006 um 14:46:13 Uhr
Goto Top
Hi,
Das mit dem md5 hash ist ne gute Idee.face-smile

Ich habe inzwischen auch schon was geschafftface-smile:

-Registrierung an einer MySql Datenbank (Mit sofortiger freischaltungface-wink)
-Login an die DB mit session und regelmäßiger abfrage.

Bei dem Account, der freigeschaltet werden soll, handelt es sich um den Zugriff auf internetseiten
via http. Wenn mir jemand das system erläutern könnte wie ich die mail versende (MIT dem md5 hash als LINK) Wie man durch einen LINK etwas freischaltet. vllt. noch eine Spalte in der DB wo dann ein bestimmter Wert eingetragen wird????

Mfg Nippie
11078
11078 02.11.2006 um 15:05:31 Uhr
Goto Top
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
Nippie
Nippie 02.11.2006 um 15:38:51 Uhr
Goto Top
hmmmmmm...OK

Ich merke schon dass das ein ziemlich komplexes "Gerät" ist. Ich werde mal alle Teile einzeln angehen.

Mfg Nippie
blubb
blubb 02.11.2006 um 15:50:13 Uhr
Goto Top
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 =)
11078
11078 02.11.2006 um 16:04:46 Uhr
Goto Top
Hallo,

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.

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
blubb
blubb 02.11.2006 um 16:15:19 Uhr
Goto Top
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. ;)

Wie gesagt ist das aber alles ziemlich theoretisch, sodass man eigentlich auch md5(Nick) verwenden kann.
11078
11078 02.11.2006 um 17:06:00 Uhr
Goto Top
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 face-smile


Gruß,
Tim
Nippie
Nippie 02.11.2006 um 17:11:59 Uhr
Goto Top
Eine sehr gute Idee....
thx

Mfg Nippie