Größter BUG, den ich bis jetzt kenne...

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Größter BUG, den ich bis jetzt kenne...

      hi leute...

      ich arbeite gerade an meiner seite und wollte die e-mail templates testen...

      ich habe die pw-erinnerungsfunktion ausprobiert... und wisst ihr was dann passiert?

      man bekommt ein NEUES PW statt des alten...!!!!!!!!!!!!!!!!!!!!

      jeder IDIOT kann der die e-mail eines members weiß, kann also das pw rücksetzen!
      außerdem kann der idiot (der nichts tun hat) .. auch willkürlich e-mails sich ausdenken, die meisten nutzen ja eh den nick + web/hotmail.de ... also muss der täter nicht unbedingt die e-mail wissen... mit ein bisschen ausprobieren kann man das hinkriegen.

      der user wird sich beim einloggen wundern, wieso er nicht rein kommt. jeder 2. kommt nie wieder auf die seite. und jeder wird sicherlich genervt sein, der eine mehr, der andere weniger.

      ich hoffe es ist jemand in der lage, das umzuschreiben, sodass die leute das alte pw zugeschickt bekommen. im template kann man ja daraufhinweisen, dass die user bitte nach dem login ein anderes pw wählen sollen.



      gruß
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von aaaasaaaa ()

    • RE: Größter BUG, den ich bis jetzt kenne...

      Hi aaasaaaa,

      dass man eine Neue Email erhält, ist so gewollt! Warum? Ganz einfach:

      Beim registrieren wird das Passwort in MD5 kryptiert. Man kann das Passwort jedoch nicht wieder decryptieren!!! Sonst macht MD5 keinen Sinn. Diese Vorgehensweise ist eine sichere Vorgehensweise. Deshalb kann das System ja auch nicht das alte Passwort "wiederherstellen"!

      Und wenn eine dritte Person deine Email Adresse & dein Passwort hätte, würde er glaub ich mehr machen wollen, als nur dein Dolphin Account zu "sabotieren"! ;)

      Wirkungsvolle Alternativen, die deinem Wunsch entsprechen könnten, wären diese:
      1. Bei der Registrierung muss der User eine Erinnerungsfrage auswählen und auch eine Antwort aufschreiben.
      2. Man verbindet das Dolphin System mit einem SMS-Dienstleister und lässt einen Code auf das Handy schicken, damit man überhaupt das Passwort ändern kann.
      3. Mann muss schon bei dem Formular "Passwort vergessen" seine persönlichen Daten ( z.B. Augenfarbe, Geburtsdatum, letzte 3 Zahlen der Kreditkarte etc ) eingeben.
        [/list=1] Das waren nur einige Möglichkeiten.Es ist also KEIN Bug, sondern vielmehr eine Sicherheitsvorkehrung.GrußcreativeMind
      Boonex Dolphin Expert, Software-Entwickler, Web-Entwickler, Designer, iOS Entwickler für iPhone/iPad -- Schulungen, Installationen, Konfigurationen, Sicherheitstests für Dolphin Community Inhaber --
    • @creativeMind

      vielen dank für deine antwort.

      ich weiß nicht ob du mich nicht ganz verstanden hast, ober ob ich mich nicht klar genug ausgedrückt habe...

      es geht mir nicht ums sabotieren.

      der "böse" user kann aber die pw von anderen zurücksetzen lassen, sodass die user ein anderes pw erhalten.

      die opfer werden sich wundern, wenn sie sich nicht mehr mit ihren normalen pw einloggen können. der pöse pöse user kann jederzeit aus langeweile den usern das pw zurücksetzen lassen. mir würde das tierisch auf den sack gehen.

      klar.. der böse user kann damit nichts anfangen, aber er kann dennoch leute dadurch ärgern und deshalb finde ich ist das schon ein BUG, da das system nicht ganz durchdacht wurde.

      zu deinen alternativen:

      1.) das wäre super. beim pw zurücksetzen sollte der user, die erinnerungsfrage auswählen müssen und dann die antwort eintippen + die e-mail adresse wissen müssen. wenn beides zusammen passt, wird ein neues pw an die e-mail verschickt.

      2.) dann könnten aber user genauso ... pw zurücksetzen.

      3.) das wäre eine gute möglichkeit. aber auch hier gilt, bei der rücksetzung des pw... sollte das system die daten abgleichen und nur wenn e-mail, augenfarbe, geburtstag und geburtsort stimmen... sollte das system eine e-mail mit neuem pw schicken.

      könntest du mir eines der alternativen umsetzen oder hast du noch andere ideen, vorschläge?

      ich wäre natürlich bereit... was zu zahlen. allerdings müssten wir vorher einen preis festsetzen, nicht dass du dann etwas umsonst programmierst... und ich es später nicht bezahlen kann. lol

      gruß
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!
    • aber das opfer, dessen passwort zurückgesetzt wurde bekommt doch die email mit dem neuen passwort?! also kann er sich auch anmelden. und wenn das opfer dann dem admin bescheid sagt kann dieser evtl nachverfolgen über welche ip diese anfrage lief. wobei bei einzelfällen dies ja die mühe nicht wert ist. :rolleyes:
    • @tom12057

      jap, das ist ja schon richtig!

      aber trotzdem würde das die leute doch extrem nerven.
      mich besonders, da ich der admin bin und nichts dagegen tun kann.

      ich weiß gar nicht wie ich das nachverfolgen könnte.
      und wenn ich sogar seine ip dann hätte, könnte ich doch gar nichts dagegen machen.
      1. ist das nicht strafbar (soweit ich weiß)
      2. es wäre wirklich extrem aufwendig.

      .. da wäre mir ein anderer weg (siehe oben) lieber. ;)



      gruß
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!
    • tja sicher würde es nerven, doch unerwünschte werbung im briefkasten nervt auch. ich glaube das sind halt die opfer die wir bringen müssen wenn wir uns nicht als einsiedler in einem einsamen wald begeben wollen :rolleyes:. die lösung mit der frage erscheint mir auch am besten oder was mir noch lieber wäre, das das alte passwort erst dann seine gültigkeit verliert, wenn über die erinnerungsmail das neue passwort bestätigt wird.
    • @tom...

      oooooooohja, diese möglichkeit gefällt mir am aller besten. LOL

      aber .. ob das realisierbar ist?!

      kp.

      gruß


      (zu not, würde ich gerne den link zum PW-rücksetzen löschen und stattdessen, das kontaktformular verlinken... damit die user mich um ein neues pw bitten.)
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!
    • Original von aaaasaaaa
      @tom...

      oooooooohja, diese möglichkeit gefällt mir am aller besten. LOL

      aber .. ob das realisierbar ist?!



      Ja das geht!

      Gruß
      creativeMind
      Boonex Dolphin Expert, Software-Entwickler, Web-Entwickler, Designer, iOS Entwickler für iPhone/iPad -- Schulungen, Installationen, Konfigurationen, Sicherheitstests für Dolphin Community Inhaber --
    • @tom...

      danke. du hast recht!

      ich denke .. dann werde ich auf jeden fall .. ein mod. brauchen ^^

      am besten gefällt mir der vorschlag von dir.. das pw soll erst resetet werden, wenn man die e-mail bestätigt.

      ==> ....

      @all

      .... vll. kriegt das creativeMind oder sonst jmd. hin?! :denk:
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!
    • Mod: Zusaetzliche Information des Profiles abfragen

      Hi Leute,

      Ich bin ueber das gleiche Problem gestolpert und habe es folgendermassen geloest:

      Einfach eine zusaetzliche Information, wie z.B. die Postleitzahl, aus dem Profil abfragen. Somit muessen E-mail und PLZ uebereinstimmen um das Passwort zurueck zu setzen.



      Hier ist sind die Modifikationen des forgot.php Script in nur zwei Schritten:

      Oeffne in einem Texteditor das Script /forgot.php.

      1. Suche nach...

      <table cellspacing=0 cellpadding=0 class=text>
      <td><? echo _t( "_My Email" ); ?>:&nbsp;</td>
      <td><input class=no type=text name="Email" value="<? echo htmlspecialchars_adv($_POST['Email']); ?>"></td>
      <td>&nbsp;</td>
      <td><input class=no type=submit value="<? echo _t( "_Retrieve my information" ); ?>"></td>
      </table>

      und ersetze durch...

      <table cellspacing=2 cellpadding=0 class=text>
      <tr>
      <td><? echo _t( "_My Email" ); ?>:&nbsp;</td>
      <td><input class=no type=text name="Email" value="<? echo htmlspecialchars_adv($_POST['Email']); ?>"></td>
      </tr>
      <tr>
      <td><? echo _t( "_My ZIP" ); ?>:&nbsp;</td>
      <td><input class=no type=text name="ZIP" value="<? echo htmlspecialchars_adv($_POST['ZIP']); ?>"></td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td><input class=no type=submit value="<? echo _t( "_Retrieve my information" ); ?>"></td>
      </tr>
      </table>


      2. Suche nach...

      $sEmail = htmlspecialchars_adv($_POST['Email']);
      $memb_arr = db_arr( "SELECT `ID` FROM `Profiles` WHERE `Email` = '$sEmail'" );

      und ersetze durch...

      $sEmail = htmlspecialchars_adv($_POST['Email']);
      $sZIPcode = htmlspecialchars_adv($_POST['ZIP']);
      $memb_arr = db_arr( "SELECT `ID` FROM `Profiles` WHERE `Email` = '$sEmail' AND `zip` = '$sZIPcode'" );


      Wenn ein andere Profilinformation abgefragt werden soll, dann musst du die entsprechende Variable ZIP aendern.

      Ich hoffe, das dies euch hilft. Noch besser waere es, wenn man auch noch die Captcha Security-Code Abfrage einfuegen koennte, damit Bots die Abfrage nicht automatisch ausfuehren koennen.

      [ZOBO]
    • @ZOBO

      hey....... ZOBO....... vielen DANK für den mod, den du uns kostenlos zur verfügung stellst!! super! :)

      ich habes es noch nicht ausprobiert, ich bin mir aber sicher.. dasss es klappen wird.

      @all

      ZOBO sagte: "Wenn ein andere Profilinformation abgefragt werden soll, dann musst du die entsprechende Variable ZIP aendern. (...) Noch besser waere es, wenn man auch noch die Captcha Security-Code Abfrage einfuegen koennte, damit Bots die Abfrage nicht automatisch ausfuehren koennen."


      hmm also PLZ finde ich persönlich nicht so gut, da man dies ja unter profil nachsehen kann. ich würde eher ein extrafeld erstellen, z.B. Name der Mutter, oder ähnliches und dieses NICHT im profil anzeigen lassen.

      bei der rücksetzung der e-mail, kann man dann die e-mail und den namen der mutter abfragen. :)

      angenommen ich nenne das formularfeld "NdM" bzw. "NamederMutter".

      wie würde dann die variable aussehen?

      NdM schon klar...

      aber bei der letzten zeile steht zum schluss plötzlich "$sZipcode" .. das ---> "code" verwirrt mich. muss ich dann "$sNdMcode" einsetzen???

      wäre um eine antwort dankbar.

      ich kenne mich mit php noch nicht wirklich aus und weiß auch nich wie ich jetzt die captcha-security einbaue. ich finde die captcha sicherung schon sinnvoll,
      da die leute dann auto. attacken (bruteforce) .. vergessen können.
      naja, zumindestens für die newbies sollte es ein bisschen schwieriger sein. :freuen:

      auch hier käme mir eine antwort sehr gelegen. xD


      gruß
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von aaaasaaaa ()

    • Hi aaaasaaaa,

      aber bei der letzten zeile steht zum schluss plötzlich "$sZipcode" .. das ---> "code" verwirrt mich. muss ich dann "$sNdMcode" einsetzen???


      Ja, die Variable kannst du nennen wie du willst, solange sie nicht schon im System benutzt wird.

      Fuer NdM wuerde es dann folgendermassen aussehen:

      Oeffne in einem Texteditor das Script /forgot.php.

      1. Suche nach...

      Quellcode

      1. <table cellspacing=0 cellpadding=0 class=text>
      2. <td><? echo _t( "_My Email" ); ?>:&nbsp;</td>
      3. <td><input class=no type=text name="Email" value="<? echo htmlspecialchars_adv($_POST['Email']); ?>"></td>
      4. <td>&nbsp;</td>
      5. <td><input class=no type=submit value="<? echo _t( "_Retrieve my information" ); ?>"></td>
      6. </table>

      und ersetze durch...

      Quellcode

      1. <table cellspacing=2 cellpadding=0 class=text>
      2. <tr>
      3. <td><? echo _t( "_My Email" ); ?>:&nbsp;</td>
      4. <td><input class=no type=text name="Email" value="<? echo htmlspecialchars_adv($_POST['Email']); ?>"></td>
      5. </tr>
      6. <tr>
      7. <td><? echo _t( "_My NdM" ); ?>:&nbsp;</td>
      8. <td><input class=no type=text name="NdM" value="<? echo htmlspecialchars_adv($_POST['NdM']); ?>"></td>
      9. </tr>
      10. <tr>
      11. <td>&nbsp;</td>
      12. <td><input class=no type=submit value="<? echo _t( "_Retrieve my information" ); ?>"></td>
      13. </tr>
      14. </table>
      Alles anzeigen


      2. Suche nach...

      Quellcode

      1. $sEmail = htmlspecialchars_adv($_POST['Email']);
      2. $memb_arr = db_arr( "SELECT `ID` FROM `Profiles` WHERE `Email` = '$sEmail'" );

      und ersetze durch...

      Quellcode

      1. $sEmail = htmlspecialchars_adv($_POST['Email']);
      2. $sNdMutter = htmlspecialchars_adv($_POST['NdM']);
      3. $memb_arr = db_arr( "SELECT `ID` FROM `Profiles` WHERE `Email` = '$sEmail' AND `NdM` = '$sNdMutter'" );


      Die Variable in der Datenbank muss dann natuerlich auch "NdM" heissen!
      Ausserdem musst du noch in der Sprachdatenbank _My NdM einfuegen.

      Ich ueberlege mir mal was mit der Catcha-Code Abfrage. Das will ich bei mirauch einbauen.

      [ZOBO]
    • mit reCAPTCHA

      Ich kann n icht herausfinden, wie das Captcha System im Dolphin funktioniert, habe daher hier eine Loesung mit dem kostenlosen und genialen reCAPTCHA:

      Screenshot:


      Zuerst bei reCAPTCHA einen kostenlosen Account registrieren und URL eintragen und Keys generieren.

      Nun die folgenden beiden Functions in /forgot.php komplett austauschen:

      Quellcode

      1. /**
      2. * page code function
      3. */
      4. function PageCompPageMainCode()
      5. {
      6. require_once( 'inc/recaptchalib.php' );
      7. $privatekey = "...";
      8. $resp = recaptcha_check_answer ($privatekey,
      9. $_SERVER["REMOTE_ADDR"],
      10. $_POST["recaptcha_challenge_field"],
      11. $_POST["recaptcha_response_field"]);
      12. global $_page;
      13. global $site;
      14. $show_form = true;
      15. $action_result = _t( "_FORGOT", $site['title'] );
      16. ob_start();
      17. if ( $_POST['Email'] )
      18. {
      19. // Test if eneterd email is not valid
      20. if ( !eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$", $_POST['Email']) )
      21. {
      22. $_page['header'] = _t( "_Error" );
      23. $_page['header_text'] = _t( "_Incorrect Email" );
      24. $action_result = _t( "_INCORRECT_EMAIL" );
      25. }
      26. else
      27. {
      28. // Check if reCAPTCHA is invalid
      29. if (!$resp->is_valid) {
      30. $_page['header'] = _t( "_Error" );
      31. $_page['header_text'] = _t( "_Incorrect_reCAPTCHA_Header" ) . " (Error: " . $resp->error . ")";
      32. $action_result = _t( "_Incorrect_reCAPTCHA_Text" );
      33. }
      34. else
      35. {
      36. // Check if entered email is in the base
      37. $sEmail = htmlspecialchars_adv($_POST['Email']);
      38. $sZIPcode = htmlspecialchars_adv($_POST['ZIP']);
      39. $memb_arr = db_arr( "SELECT `ID` FROM `Profiles` WHERE `Email` = '$sEmail' AND `zip` = '$sZIPcode'" );
      40. if ( $memb_arr['ID'] )
      41. {
      42. $recipient = $sEmail;
      43. $message = getParam("t_Forgot");
      44. $subject = getParam('t_Forgot_subject');
      45. generateNewPwd($memb_arr['ID']);
      46. $mail_ret = sendMail( $recipient, $subject, $message, $memb_arr['ID'] );
      47. $sQuery = "UPDATE `Profiles` SET `Password` = md5(`Password`) WHERE `ID`='{$memb_arr['ID']}'";
      48. db_res( $sQuery );
      49. createUserDataFile( $memb_arr['ID'] );
      50. if (!$mail_ret)
      51. {
      52. $_page['header'] = _t( "_Recognized" );
      53. $_page['header_text'] = _t( "_RECOGNIZED", $site['title'] );
      54. $action_result = _t( "_MEMBER_RECOGNIZED_MAIL_NOT_SENT", $site['title'] );
      55. $show_form = false;
      56. }
      57. $_page['header'] = _t( "_Recognized" );
      58. $_page['header_text'] = _t( "_RECOGNIZED", $site['title'] );
      59. $action_result = _t( "_MEMBER_RECOGNIZED_MAIL_SENT", $site['url'], $site['title'] );
      60. $show_form = false;
      61. }
      62. else
      63. {
      64. $_page['header'] = _t( "_Not Recognized" );
      65. $_page['header_text'] = _t( "_NOT_RECOGNIZED", $site['title'] );
      66. $action_result = _t( "_MEMBER_NOT_RECOGNIZED", $site['title'] );
      67. }
      68. }
      69. }
      70. }
      71. echo "<table width=\"100%\" cellpadding=4 cellspacing=4>
      72. <td align=center class=text2>\n";
      73. echo $action_result;
      74. if ( $show_form )
      75. send_form();
      76. echo "
      77. </td></table>\n";
      78. $ret = ob_get_contents();
      79. ob_end_clean();
      80. return $ret;
      81. }
      Alles anzeigen

      Quellcode

      1. /**
      2. * Prints HTML form for forgot password function
      3. */
      4. function send_form()
      5. {
      6. require_once( 'inc/recaptchalib.php' );
      7. $publickey = "...";
      8. ?>
      9. <br />
      10. <script type= "text/javascript">
      11. var RecaptchaOptions = {
      12. theme: 'red',
      13. lang: 'de',
      14. tabindex: 3
      15. };
      16. </script>
      17. <center>
      18. <form action="<? echo $_SERVER['PHP_SELF']; ?>" method=post>
      19. <table cellspacing=9 cellpadding=0 class=text>
      20. <tr>
      21. <td><? echo _t( "_My Email" ); ?>:&nbsp;</td>
      22. <td><input tabindex="1" class=no type=text name="Email" value="<? echo htmlspecialchars_adv($_POST['Email']);
      23. ?>"></td>
      24. <td rowspan=3><? echo recaptcha_get_html($publickey); ?></td>
      25. </tr>
      26. <tr>
      27. <td><? echo _t( "_My ZIP" ); ?>:&nbsp;</td>
      28. <td><input tabindex="2" class=no type=text name="ZIP" value="<? echo htmlspecialchars_adv($_POST['ZIP']); ?>"></td>
      29. </tr>
      30. <tr>
      31. <td>&nbsp;</td>
      32. <td><input tabindex="4" class=no type=submit value="<? echo _t( "_Retrieve my information" ); ?>"></td>
      33. </tr>
      34. </table>
      35. </form>
      36. </center>
      37. <?
      38. }
      Alles anzeigen


      PrivateKey und PublicKey muessen noch eingetragen werden (die bekommt ihr bei recaptcha.net fuer eure Domain).

      [ZOBO]
    • @ZOBO

      super anleitung!!!!

      vielen dank!!!!

      hat bestens geklappt!! *breites lächeln" :freuen:

      PS: die captcha habe ich noch nicht eingebaut.
      werde ich demnächst aber "wahrscheinlich" tun.

      mich stört es ein bisschen, das die captcha "importiert" werden,
      so ist man immer an diesen dienst gebunden.

      angenommen der dienst fällt mal für mehrere stunden aus?!
      das würde schon ein problem geben...

      nunja, vielen dank nochmal!!!!!

      (trotzdem .. die captcha alternative finde ich dennoch sehr gut)


      @all

      echt klasse, hier hilft wirklich jeder jedem... :)
      so muss ein forum bzw. ein board funktionieren. :D :D


      gruß
      dolph-in-forum.de/thread.php?threadid=12606 ---> Biete BoonEx Accounts an! Samt Modulen, Lizenzen, etc.

      Außerdem habe ich ein Projekt zu verkaufen!!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von aaaasaaaa ()

    • Das reCAPTCHA Projekt ist von der School of Computer Science at Carnegie Mellon University (USA) in Zusammenarbeit mit Intel fuer die Uebersetzung von digitalisierten Buechern eingerichtet worden. Es ist sehr unwahrscheinlich - aber nicht unmoeglich - dass dieser Dienst ausfaellt. ich habe ihn schon seit Jahren im Einsatz und noch nie gab es Probleme. Ausserdem tut man hier noch was Gutes...

      Klicke hier fuer mehr Informationen uebr reCAPTCHA>>

      Ich bin gerade dabei, reCAPTCHA auf der Kontakt-Seite einzubauen...

      [ZOBO]