Ankündigung

Einklappen
Keine Ankündigung bisher.

MD5 Code per Mail senden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MD5 Code per Mail senden

    Hallo,
    ich möchte für die User eine Aktivierungsseite errichten. Dafür will ich es machen, das man auf einen Link klicken muss, um den Account zu aktivieren. Nach der Registrierung existiert in der register2.php die Variable $passwort mit MD5 Hash.

    Nun mein Vorschlag:
    PHP-Code:
    manager/verify.php?id=$passwort 
    Da man MD5 eigentlich nicht knacken kann und es zudem nicht erkennbar ist, dass es das Passwort ist, würde ich so den Bestätigungslink machen.

    Auf der seite verify.php würde ich es dann so entgegennehmen:
    PHP-Code:
    $id $_GET["id"]; 
    Dann würde ich $id mit den Datensätze vergleichen und dann findet das Script heraus, wo dieses Feld existiert und setzt den Wert im Feld active auf 1.

    Ist das empfehlenswert? Oder was benutzt man typischerweise zur Aktivierung eines Account?

  • #2
    Oder was benutzt man typischerweise zur Aktivierung eines Account?
    Auf jeden Fall etwas anderes.

    - md5 ist überhaupt nicht „nicht knackbar“
    - „es zudem nicht erkennbar ist, dass es das Passwort“ Also ich würde das schon erkenn, wenn ich mir die Mühe mache.
    - Ein Passwort verschickt man nicht per E-Mail. Was wenn ein Sendefehler auftritt, was wenn andere mitlesen (Kollegen, Admins, die Freundin, was, wenn jemand auf der Leistung mithört?)
    - Der Sinn eines Registrierungslinks ist, dass er nur einmal funktioniert.

    Generier Dir halt einen Hash von einem Zufallswert und trag ihn zusätzlich in den Userdatensatz ein.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Man kann es so machen, allerdings würde ich das nicht empfehlen. Eventuell noch etwas anderes als das Passwort benutzen und was anderes dranhängen, z.B. den aktuellen timestamp oder eine Zufallszahl, etc.

      Nur das Passwort als md5() als Bestätigungscode kann man (durch Zufall) herausfinden.

      mfg

      Kommentar


      • #4
        Wie funktioniert das mit einem Zufallswert?
        also z.B. $hash = md5(..) oder wie? Wie kann man den dann überprüfen? Der muss dann erst in die Tabelle eingetragen werden oder?

        Etwa so: $zufall = rand(1,100)? Kann man dann noch einen md5 hash rüber machen oder lohnt sich das nicht? Sollte man stattdessen z.B. sowas machen
        PHP-Code:
        $zufall rand(100000000000000,10000000000000000000000000000000

        Kommentar


        • #5
          uniqid() sollte weiterhelfen.

          Du legst in deiner user Tabelle eine neue Spalte an: activation_code

          Dort speicherst du bei der Registrierung einen Hash den du aus md5(), uniqid() und meinetwegen noch irgendwas mit rand() zusammenfummelst.

          Dem Link in der E-Mail übergibst du besagtem Zufallshash.

          Den Rest machst du so wie du es vor hast.

          Nach der Aktivierung leerst du die Spalte activation_code für den jeweiligen User woran du dann erkennen kannst ob dieser aktiviert ist oder nicht.

          Alternative kannst du auch eine weitere Spalte für den Status des Users nehmen, falls der Aktivierungscode in der Datenbank bestehen bleiben soll/muss.

          Edit: Dein Beispiel dürfte nicht hinhauen zwecks der Größenbeschränkung eines Integers.
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Hallo,

            du kannst eine user_activation Tabelle erstellen, in der du den Activation-Key mit Erstellungsdatum ablegst. Diesen verschickst du per Email, du kannst ihn zufällig erzeugen (siehe: PHP: uniqid - Manual). Klickt jemand deinen Link an, schaust du in der Tabelle nach, ob er existiert, mit dem korrekten User in Verbindung steht und ob er nicht abgelaufen ist (> paar Tage). Wenn er in Ordnung ist aktivierst du den User (user.activated) und entfernst den Eintrag (user_activation). Beim Ändern der Emailadresse kannst du das gleiche Verfahren verwenden.

            Edit: Dark war schneller ^^
            "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

            Kommentar


            • #7
              Ja, im Manual ist es gut erläutert. Ich wusste einfach nicht, wie die Funktion heißt. Die eignet sich perfekt und funktioniert auch. Danke =)

              Kommentar

              Lädt...
              X