login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met wachtwoord wijzigen

Offline markdekker - 20/11/2008 09:40 (laatste wijziging 20/11/2008 11:33)
Avatar van markdekkerNieuw lid Hallo,

Ik heb een probleempje met wachtwoord wijzigen. Als een lid zijn wachtwoord is vergeten, kan hij die opnieuw instellen. Alleen daarvoor moet hij hem wel activeren door op een link te klikken.

Als je een wachtwoord wijziging hebt aangevraagd krijg je een activerings link in je mailbox, die er zo uit ziet:

http://www.next...k&code=

wat er aan deze link ontbreekt is 4 cijfer getal achter code=
In de database word deze code wel geplaatst alleen hij wil hem niet tonen in de email die je ontvangt.

Hopelijk weten jullie een oplossing voor dit probleem.

mvg,
Mark

10 antwoorden

Gesponsorde links
Offline Ontani - 20/11/2008 09:50
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Logisch toch, je haalt eerst de gegevens op met de code in daarna voeg je een code toe en gebruik je de gegevens in de mail van de vorige query.

Normaal voeg je eerst een nieuwe rij in de tabel met wachtwoordwijzigen en haal je daarna pas alles op wat je nodig hebt, niet andersom.
Offline zointer - 20/11/2008 09:52
Avatar van zointer HTML gevorderde Je haalt reeds een code uit de db terwijl deze nog niet eens is opgeslagen
  1. $insert = "INSERT INTO leden_wachtwoordwijzigen (
  2. gebruikersnaam,
  3. wachtwoord,
  4. code,
  5. tijd)
  6. VALUES (
  7. '".$_POST['gebruikersnaam']."',
  8. '".md5($_POST[wachtwoord])."',
  9. '".rand(1000, 5000)."',
  10. '".time()."')";
  11. mysql_query($insert)or die(mysql_error());;
  12.  
  13. $select1 = "SELECT * FROM leden_wachtwoordwijzigen";
  14. $query1 = mysql_query($select1)or die(mysql_error());
  15.  
  16. $list = mysql_fetch_object($query);
  17.  
  18. mail("".$list->naam." <".$list->email.">", "".$website['naam']." - Wachtwoord Wijzigen Bevestigen", "Beste ".$list->naam.",\n\nJij of iemand anders heeft geprobeerd je wachtwoord te wijzigen op ".$website['naam'].".\nWil je het wachtwoord wijzigen, klik of dubbelklik dan op de onderstaande link.\nWil je je wachtwoord niet wijzigen, doe dan niets. Bij problemen neem contact op met Mark Dekker.\n\nGebruikersnaam: ".$list->gebruikersnaam."\nWachtwoord: ".$_POST['wachtwoord']."\n\nZorg eerst dat je uitgelogd bent en klik of dubbelklik hier als je je wachtwoord wilt wijzigen:\nhttp://www.nextgamer.nl/?pagina=leden/wachtwoordwijzigen&actie=bevestigen&lid=".str_replace(" ", "%20", $list->gebruikersnaam)."&code=".$list->code."\n\n \n\nBinnen een uur moet het wijzigen bevestigd worden.\n\n".$website['naam']."\n".$website['link']."","From: ".$website['naam']." <".$website['mail'].">");
Offline markdekker - 20/11/2008 10:08
Avatar van markdekker Nieuw lid Dus hoe zou ik het nou beste kunnen doen? Is niet me eigen script dus.
Offline zointer - 20/11/2008 10:14 (laatste wijziging 20/11/2008 10:24)
Avatar van zointer HTML gevorderde zie code die ik geef 

.je plaatst insert() boven $select1(), opgelost

edit: speciaal op je wenken de verbeterde versie 
Offline markdekker - 20/11/2008 10:31 (laatste wijziging 20/11/2008 11:33)
Avatar van markdekker Nieuw lid Ja okee, dat had ik gedaan maar is dat het enigste?? want het werkt helaas niet. in iedergeval wel bedankt dat je me wilt helpen.

**
Helaas dan werkt die ook niet.

Offline Gerard - 20/11/2008 11:15
Avatar van Gerard Ouwe rakker Het systeem zoals het nu is gemaakt met de 4-cijferige code is gewoonweg niet veilig genoeg. Wanneer ik jouw adminaccount zou willen overnemen hoef ik maar het volgende te doen:
- Ik vul jouw gebruikersnaam in
- Ik vul het wachtwoord in wat ik wil hebben

Nu wordt er op dat moment een e-mail naar jouw e-mail adres gestuurd, maar ik weet dat de code tussen de 1000 en de 5000 moet liggen. Wat ik dus doe is een script schrijven wat jouw controle pagina 4000 keer opvraagt, elke keer met de code 1 cijfer hoger. Dit hoeft nog geen minuut te duren. Binnen een minuut kan ik dus beheerderrechten hebben over jouw website.
Offline markdekker - 20/11/2008 11:30
Avatar van markdekker Nieuw lid Okee, dus kan beter totaal iets anders op maken.
Offline Gerard - 20/11/2008 11:32 (laatste wijziging 20/11/2008 11:33)
Avatar van Gerard Ouwe rakker In plaats van een 4-cijferige code zou je kunnen kiezen voor een md5 hash die bestaat uit de volgende informatie:

- MD5 hash van het huidige password (onmogelijk te weten voor potentiële hacker)
- Huidige datum/tijd

Deze stop je dan in dat code veld en geef je mee in het e-mail bericht.
Offline markdekker - 20/11/2008 11:35
Avatar van markdekker Nieuw lid Okee. Dat zou prachtig zijn. Interesse om dit voor mij te maken tegen kleine vergoeding? of schuilt hier veel werk in?
Offline Gerard - 20/11/2008 13:13 (laatste wijziging 20/11/2008 14:18)
Avatar van Gerard Ouwe rakker Dit is een kleine aanpassing die je, mijns inziens, makkelijk zelf ook nog wel kan maken. Je hoeft alleen de kolom in de database te veranderen naar VARCHAR(32). Daarnaast hoef je in de PHP code niet veel te veranderen. Ik zal zo wel een update posten.

update
Kijk eens of je met dit script iets aan kan vangen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s