Кто-то спамит мою форму, отправляя 300 писем каждые несколько часов - PullRequest
0 голосов
/ 25 июня 2018

Извините за длинное сообщение, но это очень важно, не только для меня, но и для многих пользователей, которые борются с этим.

Я очень обеспокоен этим и очень раздражен.У меня есть сайт, и я продаю услуги по созданию базовых сайтов для других людей.У меня есть форма и не было reCaptcha, когда 2 дня назад это началось.Сейчас в моей форме есть reCaptcha, но я не думаю, что сделал все правильно, потому что спам-сообщения по-прежнему приходят каждые несколько часов.Я прочитал несколько часов об этом, и я не очень понимаю это.Это то, что у меня есть до сих пор, и я надеюсь, что вы поможете мне сделать его пуленепробиваемым.

У меня есть это в моей форме внизу до закрытия тега формы:

     <div class="g-recaptcha" data-sitekey="PUBLIC-KEY"></div>
                            <br>

<center> <p id="txt"><input id="mybtn" type="submit" value="Verzend"> <span id="status"></span></p></center>

И у меня есть код javascript, который связывает его с кодом ajax с кодом формы php, где код написан для отправки входных данных на мою электронную почту:

<code>function submitForm(){

/* FIRST IF STATEMENT IS TO CHECK IF RECAPTCHA IS EMPTY */


       var recaptcha = $("#g-recaptcha-response").val();
   if (recaptcha === "") {
      event.preventDefault();
      alert("Check ReCaptcha");
   }
   else{

    "use strict";
    _("mybtn").disabled = true;
    _("status").innerHTML = 'een moment geduld aub ...';
    var formdata = new FormData();
    formdata.append( "n", _("n").value );
    formdata.append( "e", _("e").value );
    formdata.append( "mn", _("mn").value );
    formdata.append( "m", _("m").value );

    var ajax = new XMLHttpRequest();
    ajax.open( "POST", "contactform.php" );
    ajax.onreadystatechange = function() {
        if(ajax.readyState === 4 && ajax.status == 200) {
            if(ajax.responseText == "success"){
                _("my_form").innerHTML = '<h2>Dankuwel '+_("n").value+'. Uw bericht is succesvol verzonden. We zullen zo snel mogelijk op uw bericht reageren.<pre>Een fijne dag verder!
';} else {_ ("status"). innerHTML = ajax.responseText;_ ("mybtn"). disabled = false;}}};ajax.send (formdata);}}

и это мой код contactform.php

<?php
if( isset($_POST['n']) && isset($_POST['e']) && isset($_POST['mn']) && isset($_POST['m']) ){
    $n = $_POST['n']; // HINT: use preg_replace() to filter the data
    $e = $_POST['e'];
    $mn = $_POST['mn'];
    $m = nl2br($_POST['m']);
    $to = "gesternl@gester.nl"; 
    $from = $e;
    $subject = 'Contact Formulier';
    $message = '<b>Naam:</b> '.$n.' <br><b>Email:</b> '.$e.' <br><b>Mobiel-nummer:</b> '.$mn.' <p>'.$m.'</p>';
    $headers = "Van: $from\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    if( mail($to, $subject, $message, $headers) ){
        echo "success";
    } else {
        echo "De server is er niet in geslaagd om een bericht te verzenden. Probeer het aub later weer. Dankuwel!";
    }
}
?>

Так что я не понимаю, где мне нужно поместить закрытый ключ и если закрытый ключнеобходимо сделать его пуленепробиваемым.Мне показалось, что я прочитал, что закрытый ключ - это если вы хотите, чтобы ваша информация отправлялась на ваш счет в recaptca или в Google?

Надеюсь, и я был бы очень признателен, если бы кто-нибудь смог объяснить мне, что я из себя представляюотсутствует и как я могу улучшить это.

1 Ответ

0 голосов
/ 25 июня 2018

Да, его очень легко настроить, вы получаете закрытый ключ из своей учетной записи Google и помещаете его вместе с кодом js.

Эту ситуацию также можно исправить с помощью программы проверки php.Создайте столбец в базе данных электронной почты с именем «time_date» (может быть случайным именем) и присвойте ему дату и час, затем в php перед отправкой формы проверьте, что тот же ip, что и ранее, отправил более 3 писем в текущем 1-2 часа, если да, не отправляйте в БД информацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...