Как предотвратить поиск спама - PullRequest
0 голосов
/ 23 декабря 2010

Мое приложение http://www.tyro.in имеет функцию поиска, когда пользователь выполняет поиск, этот запрос будет отображаться в области последних запросов.Моя форма поиска использует метод GET.Я думаю, что спаммеры ищут спам-слова, и эти спам-слова непосредственно публикуются на моем сайте.Я не хочу менять метод формы с GET на POST.Пожалуйста, предложите любой способ выявления и предотвращения спам-запросов.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 31 января 2011

Вы можете отфильтровать результаты поиска, которые не соответствуют вашему контенту.Таким образом, опечатки (и экзотические поиски, которые всегда происходят) также не будут отображаться при «недавних поисках».

0 голосов
/ 23 декабря 2010

Попробуйте это:

Добавьте скрытое поле ввода в форму поиска, а также в сеанс пользователя. Когда форма будет опубликована, сопоставьте значение поля ввода с сеансом. При поиске спама это значение будет отсутствовать, поскольку у него не будет сеанса.

$hiddenvalue= md5(rand(0,1000));

//only fill session if we're not coming from a search action
if(count($_GET) == 0) {
    $_SESSION["hidden"]= $hiddenvalue;
}


<input type="hidden" name="secret" value="$hiddenvalue">

Затем после GET:

if($_GET["secret"] == $_SESSION["hidden"]) {
    //continue search
}
...