2013-11-28 3 views
3

Вопрос довольно широк, но я буду сузить его в моем случае использования.Когда требуется защита бота в взаимодействии с пользовательским интерфейсом?

Я не использую формы на своих сайтах, просто аякс звонки в php-сервисы. В основном я использую стилизованные промежутки с связанными событиями «клик», которые переходят к запросу ajax, размещая все на сервере.

  • Нет <form> элемента,
  • Нет <input type="submit"> элемента.
  • Если JavaScript отключен, ну ... ничего не работает (независимо от того, является ли это хорошая вещь не цель этого поста)

Но я все еще хочу быть уверен, что нет умных $ сс бот генерирует мусор с моими «формами».

Итак, мой вопрос: нужна ли мне защита или защита от ботов в этом контексте?


Вот решение, которое я выбрал для реализации, в соответствии с данным ответом:

HTML:

<form id="honeypotform" action="http://whatever.com"> 
    <input type="text" id="formbody"> 
    <input type="submit" id="submitbtn" value="Submit"> 
</form> 

CSS:

#honeypotform { display: none; } 

Ссылка реальное представление:

<span onclick="do();">Submit</span> 

Действия ссылки:

function do() { 

    if (formbody.value != "") return true; 
    /* ... */ 
} 

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

+0

http://stackoverflow.com/questions/8873961/how-do-i-add-honey-pot-fields-to-my-forms –

ответ

4

Что именно Bot делает: они фактически обнаруживают все входные элементы внутри вашей формы и запускают скрипт tht, заполняя входы некоторым допустимым текстом и тем самым заполняя базу данных ложными сообщениями мусора.

Как справиться с этим: Его довольно простая и каждая форма проверки должна следовать этому шаблону. Вы всегда можете поместить скрытое поле ввода внутри своей формы и присвоить ему пустое значение.

При проверке на стороне сервера, убедитесь, что вы получите эту запись, как empty.If это EMPTY продолжить вставки запросов в противном случае рассмотрят св BOT атаки Thats заполнения записей барахла.

Интересно читать: When the bots attack!

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

Только в том случае, если вы думаете об отключении JavaScript, ваш. ajax не будет работать.

Всегда полезно иметь подтверждение на стороне сервера как ПЛАН B для параноидального разработчика. Работа с качеством !!!

Пример: то, что вы дали, все еще уязвимо.

<form> 
<input type="text" id="name"> 
<input type="text" id="contact_no"> 
<input type="text" id="password"> 
<input type="hidden" id="email">//just seduce the BOT(considering that the bot reads the id or any other attribute to fill up values.Make sure on the server side $("#email").val is always zero..be it on client or server) 
<input type="text" id="original_mle">//store this in db after server side validation 
</form> 

@ AndreasBjørn: yes..thats loophole..I боится, потерпит неудачу, если есть бот разработан специально для моей формы, обеспечивающей вредоносный entries.CAPTCHA данных, как представляется, единственным решением в этом случае.

+0

Когда вы говорите 'скрытый', я понимаю, что это должен быть CSS (по ссылке, оставленной в комментариях). Я обязательно воплощу эту идею. Интересно, действительно ли мне это нужно? Действительно ли боты нажимают на мои ссылки на javascript? – Sebas

+0

хороший старый способ изображения captcha, тогда есть простая математическая операция ... не полная защита, хотя .. –

+0

Я думаю, что это не сработает, так как некоторые боты подделывают только информацию «POST», основанную на предыдущем известном submit. В некоторых случаях боту не нужно даже создавать 'GET'. –

Смежные вопросы