Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] SPAM przechodzący przez formularz z ReCaptchą
Forum PHP.pl > Forum > Przedszkole
mICh@eL
Czołem wink.gif

Żeby uniknąć spamu zastosowałem mechanizm ReCaptcha. Ręcznie testowałem i działa IMO jak należy, jednak w dalszym ciągu przychodzi mi SPAM na maila. Nie wiem, czy to ktoś ręcznie wprowadza do formularza, czy może jakaś luka w skrypcie jest że boty potrafią wysłać maila omijając ReCaptchę.

Załączam kod:
  1. <?php
  2. if (empty($_POST['tresc']))
  3. {
  4. echo '<form action="/kontakt/" method="post">
  5. <table class="kontakt">
  6. <tr>
  7. <td class="left">Temat wiadomości:</td>
  8. <td><input type="text" name="temat"></td>
  9. </tr>
  10. <tr>
  11. <td class="left">Treść wiadomości:</td>
  12. <td><textarea name="tresc" rows="6"></textarea></td>
  13. </tr>
  14. <tr>
  15. <td class="left">Zwrotny adres e-mail:</td>
  16. <td><input type="text" name="mail"';
  17. if (!empty($_SESSION['user_id']))
  18. {
  19. $id = $_SESSION['user_id'];
  20.  
  21. echo ' disabled="disabled" value="';
  22.  
  23. $sql = "SELECT `mail` FROM `users` WHERE `id` = '$id'";
  24. }
  25. echo '"></td>
  26. </tr>';
  27. if (empty($_SESSION['user_id']))
  28. {
  29. echo '<tr>
  30. <td class="left">Captcha:</td>
  31. <td>';
  32. require_once('script/recaptchalib.php');
  33. $publickey = "[tu jest mój klucz]";
  34. echo recaptcha_get_html($publickey);
  35. echo '</td>
  36. </tr>';
  37. }
  38.  
  39. echo '<tr>
  40. <td></td>
  41. <td style="text-align: center;">
  42. <input type="submit" value="Wyślij wiadomość" name="submit">
  43. </td>
  44. </tr>
  45. </table>
  46. </form>';
  47. }
  48. else
  49. {
  50. require_once('script/recaptchalib.php');
  51. $privatekey = "[tu jest mój klucz]";
  52. $resp = recaptcha_check_answer ($privatekey,
  53. $_SERVER["REMOTE_ADDR"],
  54. $_POST["recaptcha_challenge_field"],
  55. $_POST["recaptcha_response_field"]);
  56.  
  57. if (!$resp->is_valid)
  58. {
  59. echo '<script type="text/javascript">
  60. alert("Captcha nie została wprowadzona poprawnie. Wróć i spróbuj ponownie.");
  61. history.go(-1);
  62. </script>';
  63. }
  64. else
  65. {
  66. $mail = $_POST['mail'];
  67. $title = $_POST['temat'];
  68.  
  69. $message = wordwrap($_POST['message'], 70);
  70.  
  71. $headers = 'From: Mój mail <mail@mail.pl>' . PHP_EOL .
  72. 'Reply-To: '. $mail . PHP_EOL .
  73. 'X-Mailer: PHP/' . phpversion();
  74.  
  75. $sql = "SELECT `tresc` FROM `config` WHERE `nazwa` = 'e-mail'";
  76. $email = mysql_result(mysql_query($sql), 0, 0);
  77.  
  78. @mail($email, $title, $message, $headers);
  79.  
  80. echo '<div class="register"><b>Twoja wiadomość została wysłana.</b><br>
  81. Postaramy się na nią odpowiedzieć jak najszybciej ;)</div>';
  82. }
  83. }
  84. ?>


Czy z tym skryptem wg Was wszystko jest ok? Czy może ReCaptcha została złamana i mam coś innego przeciw botom zastosować?

Pozdrawiam,
b4rt3kk
Jesteś pewien, że ów spam przechodzi przez ten formularz na stronie? A nie, że jest bezpośrednio wysyłany na Twój e-mail?
mICh@eL
Tak, ponieważ przychodzą z nagłówkami "From: Mój mail <mail@mail.pl>", tak jak mam zadeklarowane w skrypcie.
Tajgeer
reCaptcha już dawno została złamana, więc nie dziw się, że ona wcale nie zabezpiecza smile.gif Zastosuj alternatywne rozwiązanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.