| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

29-06-2010, 12:16
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
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
|

29-06-2010, 12:25
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
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 ---"
|

29-06-2010, 12:38
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
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!
|

29-06-2010, 12:42
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
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 ---"
|

29-06-2010, 12:46
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
*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
__________________
Drelingdo
Krabonse
Simmannamando
|

29-06-2010, 12:51
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
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 ---"
|

29-06-2010, 12:54
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von infeloba
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.
|

29-06-2010, 12:55
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
Ich werde mal die funcion "is_numeric" verwenden...
Danke!
PS: die Website ist examen-quiz.de
|

29-06-2010, 12:57
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
...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 ---"
|

29-06-2010, 13:07
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Zitat:
Zitat von streuner
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.
__________________
Drelingdo
Krabonse
Simmannamando
|

29-06-2010, 13:09
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
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 ---"
|

29-06-2010, 13:13
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
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ß
|

29-06-2010, 13:20
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von infeloba
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.
|

29-06-2010, 13:21
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
So, habe nun mit md5 einen Code in den Aktivierungslink mit hinzugefügt
Ich hoffe, es ist nun sicherer....
Vielen Dank an ALLE!!!
|

29-06-2010, 13:28
|
|
infeloba
Registrierter Benutzer
|
|
Registriert seit: Apr 2010
Beiträge: 36
|
|
Zitat:
Zitat von wahsaga
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"
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|