Aktivierungslink-Problem

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

  • Aktivierungslink-Problem

    Moin Leudde

    Ich habe ein Problem mit "Aktivierungslinks"

    Wenn sich ein User anmeldet und ein Benutzername mit einem Leerzeichen benutzt (Bsp.: "test test"), dann wird der aktivierungslink in der zugesendeten Mail abgebrochen...

    Wie kriege ich das hin, dass der Link anklickbar ist?

    Bitte um Hilfe. Danke!

    LG

  • #2
    Hi.

    Wie wäre es mit Quellcode? Schickst du den Usernamen in der Mail als Aktivierungslink mit? Warum nicht eine id (z.B. auto_increment durch die Datenbank)?

    streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Hi streuner!

      Danke für den Tipp!!

      Das hat wunderbar geklappt. Warum bin ich nicht selber darauf gekommen.

      Genial aber simple

      Also von mir bekommstdu 5 Sterne!

      Kommentar


      • #4
        Nett von Dir, aber achte darauf, dass jeder User, der solch eine Mail erhält, den Get-Parameter (id) mit eigenen Werten versehen kann.
        Solltest auf jedenfall eine Prüfung vornehmen, z.B. mit is_numeric. Schau Dir mal den folgenden Link zum Thema SQL Injection an:

        PHP: SQL Injection - Manual

        streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar


        • #5
          *kopfkratz*

          Bei einer (fortlaufenden) ID allein besteht natürlich die Möglichkeit, dass dir irgendein Spaßvogel draufkommt und einfach mal alle User aktiviert, die sich nie aktiviert haben. Dadurch passiert dir zwar im Prinzip nichts, aber ob man das will
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Hi.

            War auch mehr als Beispiel gedacht. Kann ja auch z.B. den aktuellen timestamp nehmen, oder den Wert verschlüsseln?!? Wie würdest Du den das umsetzen?

            streuner
            Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
            der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

            "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

            Kommentar


            • #7
              Zitat von infeloba Beitrag anzeigen
              Wie kriege ich das hin, dass der Link anklickbar ist?
              Indem du dir angewöhnst, Daten kontextgerecht zu behandeln - immer*

              Der Kontext lautet hier URL, also ist URL-Kodierung zu verwenden.
              PHP-Funktionen dafür: rawurlencode/urlencode


              Wenn du allerdings nur den Nutzernamen als Parameter im Link verwendest - dann kann ich mich, sobald ich das Prinzip kenne, auch aktivieren, ohne je eine Mail bekommen zu haben - ich muss ja nur meinen Usernamen im Link einsetzen. Da muss also noch ein Zufallscode/Hash o.ä. hinzugenommen werden, wenn das verhindert werden soll.


              * Wenn du dich um Kontext und die dazu passende Behandlung der Daten erst kümmerst, wenn ein Problem auftritt, hast du etwas grundlegend falsch gemacht. Die Überlegung, wie die Daten zu behandeln sind, muss eigentlich vorher schon erfolgt sein. Mit der angesprochenen Problematik SQL Injection ist es genau das gleiche - auch hier liegt ein eigener Kontext vor, der beachtet werden muss.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ich werde mal die funcion "is_numeric" verwenden...

                Danke!

                PS: die Website ist examen-quiz.de

                Kommentar


                • #9
                  ...das alleine reicht aber nicht aus!

                  Das Tutorial zu SQL Injection ist wichtig, gerade im Zusammenhang mit Formularen und Datenbankabfragen. solltest du auf jedenfall nochmal durchlesen.


                  mfg streuner
                  Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                  der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                  "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                  Kommentar


                  • #10
                    Zitat von streuner Beitrag anzeigen
                    Kann ja auch z.B. den aktuellen timestamp nehmen, oder den Wert verschlüsseln?!? Wie würdest Du den das umsetzen?
                    Erzeuge immer einen zufälligen 32-stelligen Hex-Wert, denn ich mitspeichere und dann bei der Aktivierung verifiziere. Allerdings muss man schauen, die gesamte URL kurz zu halten, da sonst manche Mail-Clients das irgendwo umbrechen und dann das gleiche Problem auftritt wie es auch der TO eben hat.
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      Ok, ich habe das bisher stets über nen timestamp Wert gemacht, aber deine Methode ist sicherlich sicherer. 32-stellig ist natürlich schon eine ziemliche Länge als Parameter...hm. Dennoch danke.

                      mfg streuner
                      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                      Kommentar


                      • #12
                        Das ja ein PW mit MD5 abgespeichert wurde, kann ich auch den anhäggen und verifizieren?

                        Wäre doch praktisch, als einen zusätzlichen Wert in DB mitzuspeichern, oder?

                        Gruß

                        Kommentar


                        • #13
                          Zitat von infeloba Beitrag anzeigen
                          Das ja ein PW mit MD5 abgespeichert wurde, kann ich auch den anhäggen und verifizieren?
                          Höchstens dann, wenn du es gesalzen hast (und das solltest du ja sowieso haben).

                          Trotzdem würde ich auf dem Passwort basierende Daten auch nicht in der Gegend herumschicken, viel zu riskant, wer weiss wer da wo was für welche Rückschlüsse draus zu ziehen in der Lage ist.

                          Eigenen Hash als Aktivierungscode erzeugen, und gut.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            So, habe nun mit md5 einen Code in den Aktivierungslink mit hinzugefügt

                            Ich hoffe, es ist nun sicherer....


                            Vielen Dank an ALLE!!!

                            Kommentar


                            • #15
                              Zitat von wahsaga Beitrag anzeigen
                              Höchstens dann, wenn du es gesalzen hast (und das solltest du ja sowieso haben).

                              Trotzdem würde ich auf dem Passwort basierende Daten auch nicht in der Gegend herumschicken, viel zu riskant, wer weiss wer da wo was für welche Rückschlüsse draus zu ziehen in der Lage ist.

                              Eigenen Hash als Aktivierungscode erzeugen, und gut.

                              Ok, super Idee.

                              Werde , dann in der DB eine Spalte zB "aktivireungs_code" hinzufügen...


                              Thank you so much"

                              Kommentar

                              Lädt...
                              X