Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » Защита форм от роботов (скрипт)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

galym74



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Может быть вместо функции imap_binary другую функцию использовать.
Но я не знаю какую функцию использовать. И будеть ли работать этот скрипт.  
Форма уже несколько дней не работает и я незнаю использовать этот скрипт или другую искать.

Всего записей: 92 | Зарегистр. 29-06-2005 | Отправлено: 08:32 24-04-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
galym74
еще раз повторю.. какое отношение твой вопрос имеет к теме

Цитата:
Защита форм от роботов

а?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:48 24-04-2007
Mira



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вырезайте все теги,  
проверяйте на добавление  
<a href=, [url
http, https, ftp
 
и проблем будет меньше.
но не для всех форм это подходит, но там где не должны быть ссылки то что надо.

Всего записей: 1627 | Зарегистр. 25-11-2003 | Отправлено: 13:14 26-04-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот.. а еще тестирую новый метод - формы записываю в base64, так как некоторые боты все равно парсят контент если вывод формы записан как
document.write('<form>\
<input type...>\
</form>')
 
ps: удобная запись многострочных выводов в javascript
c помощью js этот код преобразуется обратно в html. пока смотрю на результаты.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:54 24-09-2007
Tr1aL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery, и как результаты?

Всего записей: 236 | Зарегистр. 13-09-2006 | Отправлено: 18:41 12-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tr1aL

Цитата:
и как результаты?

никакого спама..абсолютно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:21 13-02-2008
Tr1aL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery, а можешь поделиться кодом?

Всего записей: 236 | Зарегистр. 13-09-2006 | Отправлено: 10:36 13-02-2008
Vint



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тоже сначала средствами php кодирую форму в base64_encode, потом нашел функцию base64_decode на javascript и все боты идут лесом.
Если заапдейтят XRumer и начнут пробивать, то можно немного модифицировать закодированный код по определенной схеме до и после base64 кодирования чтоб стандарный бот не разгадал

----------
пополнение счета
пополнение skype

Всего записей: 218 | Зарегистр. 04-11-2001 | Отправлено: 11:13 13-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tr1aL

Цитата:
а можешь поделиться кодом?

ниже, по сути, уже открыли весь алгоритм

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:57 13-02-2008
GevArt



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, помогите пожалуйста. Поиск по форуму ничего не дал. Если недобдел - ткните плз.
 
Задача: Защитить форму обратной связи на сайте от спам-ботов
 
Сайт англоязычный. Сейчас у меня стоит NMS FormMail Version 3.14c1 который можно заменить на более совершенный, со встроенной капчой или еще какой то защитой.
 
Есть ли готовые решения борьбы с ботами? Или вообще посоветуйте в каком направлении копать.
 
Заранее благодарен.

Всего записей: 26 | Зарегистр. 12-08-2007 | Отправлено: 15:03 23-04-2008 | Исправлено: GevArt, 15:05 23-04-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GevArt

Цитата:
Есть ли готовые решения борьбы с ботами? Или вообще посоветуйте в каком направлении копать.  

А перечитать тему? все уже сказали и не один раз

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:03 23-04-2008
arrancarn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...
 
 
я так понимаю что цифры рисуются сами и первый скрипт описывается вокруг формы ,а второй в отдельный файл записывается?

Всего записей: 14 | Зарегистр. 26-06-2008 | Отправлено: 22:04 30-06-2008 | Исправлено: Cheery, 22:08 30-06-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я так понимаю что цифры рисуются сами и первый скрипт описывается вокруг формы ,а второй в отдельный файл записывается?

первый скрипт пример того, как делать форму с цифрами.. второй скрипт генерит сами цифры

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:11 30-06-2008
arrancarn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я не понимаю как увязать кнопку отправить и кнопку которая запустит проверку цифр
ща запишу все в отдельные файлы подумаю

Всего записей: 14 | Зарегистр. 26-06-2008 | Отправлено: 22:37 30-06-2008 | Исправлено: arrancarn, 22:42 30-06-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arrancarn

Цитата:
я не понимаю как увязать кнопку отправить и кнопку которая запустит проверку цифр

никак.. скрипт, выводящий форму, генерит случайно число, к примеру, которое с помощью переменных сессии передается скрипту, генерящему картинку.
когда форма сабмитится, проверяется соответствие введенных цифр в поле формы тем, чтобы были сгенерены и хранятся в переменной сессии.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:47 30-06-2008
arrancarn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
зацени  
 
<?php
require("форма.php");
?>
<?php
if(!empty($_POST['name'])){
    $name=htmlspecialchars(trim($_POST['name']));
    $email=htmlspecialchars(trim($_POST['email']));
    $message=nl2br(htmlspecialchars(trim($_POST['message'])));
    $content="<html>
<head>
<title>".$subject."</title>
</head>
<body>
<form name="form1" method="post" action="order.php">  
           
      </noindex>
            <table width="100%" border="0" cellpadding="7" cellspacing="0" bgcolor="#eeeeee" class="link_table">
            <tr>
            <td align="right" valign="middle"><strong>Выберите:</strong></td>
              <td>                
              <select name='person'>
          <option selected="selected">Любой</option>
          <option value=0>имя</option>
          <option value=1>имя</option>  
          <option value=2>имя</option>
          <option value=3>имя</option>
          <option value=4>имя</option>
          <option value=5>имя</option>
          <option value=6>имя</option>
          <option value=7>имя</option>
          <option value=8>имя</option>
          <option value=9>имя</option>
          <option value=10>имя</option>
          <option value=11>имя</option>
          <option value=12>имя</option>
           </select></td>
              </tr>
               <tr>
              <td align="right" valign="middle" ><strong>Ваше имя:</strong></td>
              <td ><input name="name" type="text" id="name" size="40"></td>
            </tr>
            <tr>
              <td align="right" valign="middle"><strong>Возраст:</strong></td>
              <td><input name="age" type="text" id="age" size="3"></td>
            </tr>
            <tr>
              <td align="right" valign="middle"><strong>E-mail <span class="style9">*</span>:</strong></td>
              <td><input name="email" type="text" id="email" size="40" /></td>
            </tr>  
            <tr>
              <td align="right" valign="top"><strong>Задать вопрос<span class="style9"> *</span>:</strong></td>
              <td><textarea name="comments" cols="35" rows="7" wrap="VIRTUAL" id="comments"></textarea>
              <input name="confirm" type="hidden" id="confirm" value="yes"></td>
            </tr>
            <tr>
              <td height="62"></td>
               
               
              <td><input name="Submit" type="submit" class="text" value="Отправить"> </td>
            </tr>
          </table>
            <p><strong class="style9">*</strong> - поля, обязательные для заполнения. </p>
      </form>          </td>
 
</body>
</html>";
    if(mail($to_email,$subject,$content,"MIME-Version: 1.0\n".
    "Content-type: text/html; charset=".$charset."\n".
    "From: ".$from_email."\n".
    "X-Mailer: PHP/" . phpversion())){
?>
 
 
это форма
 
<?php  
print_r($_POST);
$emails=array('мэйл@bk.ru','мэйл@bk.ru');  
$id=intval($_POST['person']);  
if ($id>=0 && $id<count($emails)) #<- тут вторая скобка )  
{  
 $ToEmail=$emails[$id];    
 $Subject  = $_Post['Subject'];  
 $Message = $_POST['email'].'
 вопрос от:'.$_POST['name'].'
 возраст:'.$_POST['age'].'
 спрашивает:'.$_POST['comments'];  
   $Headers  = "From: имя<мыло>\n";    
 mail($ToEmail, $Subject, $Message, $Headers);  
}
 
?>  
 
вот скрипт
 
по моему в форме я что-то упустил для письма

Всего записей: 14 | Зарегистр. 26-06-2008 | Отправлено: 23:50 30-06-2008 | Исправлено: arrancarn, 23:58 30-06-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arrancarn

Цитата:
зацени  

еще раз - пользуемся тэгом more для больших листингов
 
что вы привели и зачем?  

Цитата:
по моему в форме я что-то упустил для письма

для чего ? зачем две отправки ?

Цитата:
    if(mail($to_email,$subject,$content,"MIME-Version: 1.0\n".
    "Content-type: text/html; charset=".$charset."\n".
    "From: ".$from_email."\n".
    "X-Mailer: PHP/" . phpversion())){  



----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:59 30-06-2008
arrancarn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
форма
 
<form action="/check.php" method="post">
<img src="/captcha.php" alt="Картинка" /><br />
Текст на картинке: <input type="text" name="captcha" /><br />
<input type="submit" name="submit" value="Проверить" />
</form>
 
и вот скрипт
Подробнее...

Всего записей: 14 | Зарегистр. 26-06-2008 | Отправлено: 00:08 01-07-2008 | Исправлено: Cheery, 00:12 01-07-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arrancarn
ну и? еще раз - формулируем вопрос, а не постим для "зацени". не испытывайте мое терпение

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:12 01-07-2008
arrancarn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<?
session_start ();
 
switch ($a) {
    case 'image':
        $im = @imagecreate (80, 20) or die ("Cannot initialize new GD image stream!");
        $bg = imagecolorallocate ($im, 232, 238, 247);
        $char = $_SESSION['code'];
 
        //создаём шум на фоне
        for ($i=0; $i<=128; $i++) {
            $color = imagecolorallocate ($im, rand(0,255), rand(0,255), rand(0,255)); //задаём цвет
            imagesetpixel($im, rand(2,80), rand(2,20), $color); //рисуем пиксель
        }
 
        //выводим символы кода
        for ($i = 0; $i < strlen($char); $i++) {
            $color = imagecolorallocate ($im, rand(0,255), rand(0,128), rand(0,255)); //задаём цвет
            $x = 5 + $i * 20;
            $y = rand(1, 6);
            imagechar ($im, 5, $x, $y, $char[$i], $color);
        }
 
        /*/упрощённый вариант
        $color = imagecolorallocate($img, 0, 0, 0);
        imagestring($im, 3, 5, 3, $char, $color);*/
 
        //антикеширование
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Cache-Control: no-store, no-cache, must-revalidate");
        header("Cache-Control: post-check=0, pre-check=0", false);
        header("Pragma: no-cache");
 
        //создание рисунка в зависимости от доступного формата
        if (function_exists("imagepng")) {
           header("Content-type: image/png");
           imagepng($im);
        } elseif (function_exists("imagegif")) {
           header("Content-type: image/gif");
           imagegif($im);
        } elseif (function_exists("imagejpeg")) {
           header("Content-type: image/jpeg");
           imagejpeg($im);
        } else {
           die("No image support in this PHP server!");
        }
        imagedestroy ($im);    
    break;
    case 'submit':
        //проверка кода
        if (empty($_GET['code']) or empty($_SESSION['code'])) {
            echo 'Вы не указали код подтверждения';
        } elseif ($_GET['code'] != $_SESSION['code']) {
            echo 'Код подтверждения не совпадает';
        } else {
            echo 'Всё Ok!';
        }
    break;
    default:
        $_SESSION['code'] = substr(md5(uniqid("")),0,4);
        echo '<form action="captcha.php" method="get">'.
            '<input type="hidden" name="a" value="submit">'.
            '<label for="code">Код подтверждения:</label>'.
            '<input type="text" id="code" name="code" size="4" maxlength="4">'.
            '<img align="absmiddle" src="captcha.php?a=image">'.
            '<input type="submit" value="Go">'.
            '</form>';
    break;
}
?>
 
 
этот как код?
 
Добавлено:
http://www.nevius.ru/text.php?link=5
 
вот интересное объяснение

Всего записей: 14 | Зарегистр. 26-06-2008 | Отправлено: 00:23 01-07-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » Защита форм от роботов (скрипт)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru