php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2011, 15:01  
Benutzer
 
Registriert seit: 14.10.2011
Beiträge: 81
PHP-Kenntnisse:
Anfänger
chickenburner ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Passwort(hash) als Klartext per Mail schicken

Hallo Zusammen,

ich bin momentan an einem Registrierungsscript dran.
Das Passwort wird automatisch generiert und mit einem hash verschlüsselt, zusätzlich kommt noch ein salt dran.
Da das Passwort per sms gesendet werden soll, soll mir allerdings das generierte Passwort als Klartext per email zugesendet werden.

Das Script dazu sieht bis jetzt so aus:


PHP-Code:
<?php
[...]

$password "";

$pool "qwertzupasdfghkyxcvbnm";

$pool .= "23456789";

$pool .= "WERTZUPLKJHGFDSAYXCVBNM";



srand ((double)microtime()*1000000);

for(
$index 0$index 10$index++)

{

    
$password .= substr($pool,(rand()%(strlen ($pool))), 1);



}

if(isset(
$_POST ['submit']) {

$empfaenger "Meineemail@domain.de";

$absendermail "$email";

$absendername "$vorname $nachname";

$betreff "Neu-Registrierung";

$text "Ein neues Mitglied hat sich regestriert.
     Dies sind seine Login-Daten:

         $username 
         $password
         $handynummer"
;

mail($empfaenger$betreff$text"From: &absendername <$absendermail>");
}

$salt "ein string der drangehangen wird";          

$_POST['password'] = hash('sha256'$_POST ['password'].salt);

[...]
?>
1. Da ich noch neu in php bin, bitte einmal kontrolieren, ob der code Fehler hat.

2. Ist es zu unsicher, wenn ich im script mir die Daten (also das Passwort als Klartext) per Mail zusende?

3. Funktioniert das Script so, dass das Passwort generiert wird, mir per mail als Klartext zugesendet und danach erst verschlüsselt wird?

Ich danke euch für eure Hilfe!
chickenburner ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.10.2011, 15:13  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

HI

Zitat:
1. Da ich noch neu in php bin, bitte einmal kontrolieren, ob der code Fehler hat.
Verwende bitte eine Mailerklasse (siehe hier im Forum)!

Zitat:
2. Ist es zu unsicher, wenn ich im script mir die Daten (also das Passwort als Klartext) per Mail zusende?
Was heißt "zu unsicher"? Unsicher ist es, ja!

Zitat:
3. Funktioniert das Script so, dass das Passwort generiert wird, mir per mail als Klartext zugesendet und danach erst verschlüsselt wird?
Teste es am besten, dennoch halte ich das nicht wirklich für optimal.

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 20.10.2011, 15:20  
Benutzer
 
Registriert seit: 14.10.2011
Beiträge: 81
PHP-Kenntnisse:
Anfänger
chickenburner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von wolf29 Beitrag anzeigen
Was heißt "zu unsicher"? Unsicher ist es, ja!
Mit zu unsicher meine ich, ob man die empfängermail ändern kann?

Ok, warum ist es deiner Meinung nach unsicher? Weil es Möglich ist die empfängermail zu ändern? Wenn ja, wie löse ich das Problem am besten?

Zitat:
Zitat von wolf29 Beitrag anzeigen
Teste es am besten, dennoch halte ich das nicht wirklich für optimal.

mfg Wolf29
Was wäre deiner Meinung nach optimal?

Vielen Dank, dass du dir die Zeit nimmst, mir zu helfen.

EDIT:

Eine Alternative wäre, dass der User sein Passwort selbst aussucht, aber per sms einen freischaltcode zugesendet bekommt, welcher automatisch generiert wird und mir nach der Registrierung zugesendet wird. Diesen muss er dann beim erstlogin eingeben.

Alleine mit dem Freischaltcode kann niemand etwas anfangen, da das Passwort mit hash und salt in der DB gespeichert wird.

Das wäre schonmal sicherer.

Was hälst du davon?

Geändert von chickenburner (20.10.2011 um 15:34 Uhr).
chickenburner ist offline   Mit Zitat antworten
Alt 20.10.2011, 15:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Da das Passwort per sms gesendet werden soll, soll mir allerdings das generierte Passwort als Klartext per email zugesendet werden.
Ja, das ist sehr schlecht.

Zitat:
Da das Passwort per sms gesendet werden soll
???

Unsicher ist es, weil das Passwort im Klartext über eine ungesicherte Leitung geht. Du verschickst ja auch nicht Deinen Wohnungsschlüssel hinten auf eine Postkarte geklebt.

Zitat:
Das wäre schonmal sicherer.

Was hälst du davon?
Nennt sich double opt in und ist gängiger Standard.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:28  
Benutzer
 
Registriert seit: 14.10.2011
Beiträge: 81
PHP-Kenntnisse:
Anfänger
chickenburner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auch dir vielen Dank für deine Hilfe

Zitat:
Zitat von nikosch Beitrag anzeigen
Nennt sich double opt in und ist gängiger Standard.
Ja, das war mir schon klar, dass das gängiger Standard ist, aber danke für die allgemeine Bezeichnung. Hinterher ist man immer schlauer

Wie das dann ausschaut, habe ich mir so überlegt:

Der Freischaltcode wird generiert und mit den anderen Daten in der DB gespeichert, ausserdem gibt es in der DB noch die Spalte "erstlogin".
Logt der user sich ein, wird zusätzlich geprüft, ob bei "erstlogin" eine 1 gesetzt ist. Wenn nicht, wird der User auf die Seite weitergeleitet, wo er den Freischaltcode eingibt, dieser wird mit dem in der DB verglichen und wenn dieser korrekt ist, wird bei "erstlogin" eine 1 gesetzt.

Ist das ein vernünftiger Lösungsansatz?
chickenburner ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich würde zu etwas anderem raten: Den Freischalt-Code musst Du ohnehin Account-gebunden in der DB speichern. Das reicht eigentlich aus, um einen noch freizuschaltenden Account zu kennzeichnen. Auf diesem Weg kannst Du auch gleich eine Sperrmöglichkeit implementieren (sozusagen also nicht „erstlogin“ sondern „erstlogin bzw. gesperrt“). Zusätzlich ist eine Befristung der Freischaltung sinnvoll, damit Du Spaßaccounts oder nie freigeschaltete Accounts nach einer Weile aussondern kannst/.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 17:07  
Benutzer
 
Registriert seit: 14.10.2011
Beiträge: 81
PHP-Kenntnisse:
Anfänger
chickenburner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also überprüfen, ob ein Freischaltcode in der DB ist.
wenn ja, diesen abfragen und nach dem vergleich den Freischaltcode aus der DB löschen.

Mit der Sperrmöglichkeit meinst du, dass ich einen Adminbereich erstelle und in diesem, die Möglichkeit habe, wenn ich beispielsweise in ein Formular den Usernamen eingebe und auf sperren klicke, dass automatisch ein string in die spalte freischaltcode von dem user gesetzt wird?

Am besten ein geheimer string der mit hash und salt verschlüsselt wird. Dann besteht die Möglichkeit, dass wenn ein code vorhanden ist, noch geprüft wird, ob es der "gesperrt-code" ist. Wenn ja, wird nicht das Formular für den Freischaltcode angezeigt, sondern eine Benachrichtigung, dass der User gesperrt ist.

In etwa so?
chickenburner ist offline   Mit Zitat antworten
Alt 20.10.2011, 17:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 18:20  
Benutzer
 
Registriert seit: 14.10.2011
Beiträge: 81
PHP-Kenntnisse:
Anfänger
chickenburner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Top.

Ich danke dir für deine große Hilfe.
chickenburner ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP mail() sorgt für Interal Server Error AXELB Server, Hosting und Workstations 1 18.04.2011 23:16
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
Unterschied zwischen mail() und popen(/usr/sbin/sendmail)... DonTermi PHP Tipps 2007 8 27.03.2007 13:25
Mail zu einer bestimmten Uhrzeit schicken obi PHP Tipps 2006 2 26.09.2006 16:05
Funktion Mail() verwenden bendigo PHP Tipps 2006 2 05.05.2006 11:44
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
Mail mit mail() kommt nicht an center PHP Tipps 2005-2 5 18.08.2005 13:02
Datei auslesen und als Mail schicken! Broadcast PHP Tipps 2005-2 2 12.08.2005 14:29
Mail adresse überprüfen? PHP Tipps 2005-2 6 16.06.2005 11:53
Mit der PHP mail() Funktion eine HTMl mail verschicken? PHP Tipps 2005 6 09.05.2005 07:13
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
[Erledigt] link per mail schicken lassen PHP Tipps 2005 10 08.02.2005 14:50
felder gegebenen falls überprüfen und sonst mail schicken. lindner PHP Tipps 2004-2 1 14.11.2004 15:47
mail() - mail header PHP-Fortgeschrittene 2 28.09.2004 15:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mail senden user passwort, php hash password, zugangsdaten per mail verschicken, php registrierung passwort per mail, passwordhash in klartext, zugangsdaten per mail verschicken php, pw per email schicken unsicher, hash zu passwort, hash klartext, php password hash, email registrierung hash salt, passwort per mail schicken php, phph passworthash script, password hash klartext, zugangsdaten mit php per mail senden, php mail unsicher, hash mail, darf man passwörter per mail versenden?, benutzername und passwort per mail versenden ? ?, login daten per mail senden ?

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum