Jump to content
  • 0

Защита от нч запросов.


Aroused
 Share

Question

Здравствуйте. :)

Прикручиваю не сложную регистрацию.

Форма Name Login Pass E-mail. Отправляется post конечно, затем условно reg.php обрабатывает запрос (если всё нормально) и добавляет в базу.

Что предусмотреть, (ну, к примеру) какая-то программа будет делать нч запросы на сервер и серв может лечь допустим. Капча не подходит, т.к. для клиента (и меня субъективно) это может послужить источником раздражения. Есть какие либо варианты? Я просто подумал, может, отслеживать такие атаки и закрывать доступ по ip. хотя толку мало. Всё равно будет проверка на серве забанен ip или нет.

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

Скорее всего я чего-то не знаю, вот и прошу вашего совета.

upd: "нч" - низкочастотные

Edited by Aroused
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

может быть таймаут? если к примеру в минуту будет n запросов с одного и того же ипа - то бан на время, или навсегда - это как душе угодно, но при этом мне кажется нужно будет еще сверять его куку и сессионные данные, так как и айпи можно подделать через проксю, да и браузер тоже можно подделать, вот разрешение экрана конечно не подделаешь, просто тут Golden_Dragon предлагал использовать связку: ip+browser+разрешение экрана, но я думаю это уже изврат. вполне достаточно будет проверять куку, сессию и айпи, и если кол-во запросов за интервал времени превышает допустимую норму - то бан.

  • Like 1
Link to comment
Share on other sites

  • 0
rus

С куками понятно. А вот на счет механизма проверки с таймером и если что последующим баном мне не ясно. Я к тому что, единственное в голову приходит это создать в базе табличку к примеру `activity` и пихать в неё каждое подключение и ++счетчик в ячейке +время. но само по себе это и будет запрос даже когда бан, я должен буду получать ip клиента, обрабатывать на серве и отфутболивать. что тоже запрос. Или это нормальный вариант? Или это не то?

Пусть даже вся подсеть будет в бане из-за ip, это ничего, главное,

что бы серв был "морозоустойчевый" :lol: И спать спокойно.

ip+browser+разрешение экрана, но я думаю это уже изврат

Как-то слижком круто :blink:

Если установлен Apache, можно выставить значение MaxKeepAliveRequests поменьше

Стоит рассматривать. Спасибо :) Правда я почитал, что боты могут взять на себя 80% подключений. Может и надуманно.

Не поднимаю ли я панику? А вообще такое часто бывает? :huh:

Edited by Aroused
Link to comment
Share on other sites

  • 0

Что предусмотреть, (ну, к примеру) какая-то программа будет делать нч запросы на сервер и серв может лечь допустим. Капча не подходит, т.к. для клиента (и меня субъективно) это может послужить источником раздражения.

Сервер при НЧ не ляжет, подзасрётся - да, но не ляжет.

Есть два варианта, точнее их больше, но думаю модерирование это уж через чур., кароче:

1. Это подтверждение регистрации по почте, кстати заодно будете уверены что емаил реальный, а через сутки, к примеру, неподтверждённые будут удаляться.

2. Что бы вы не говорили - это капча, простая понятная (можно вообще чтоб число зелёных шариков вводили, одна цифра никого не напрягала ещё), подгружаемая аяксом после заполнения обязательных полей.

А лучше всего сочетание и того и другого, а IP палить это отстой, у нас многотысячные сети сидят с одним внешним IP. и уж точно у 30% разрешение экрана и браузер совпадают.

  • Like 1
Link to comment
Share on other sites

  • 0
а через сутки, к примеру, неподтверждённые будут удаляться.

Это как раз тот самый MySql Scheduler :rolleyes:

не ляжет

Я так понял моё беспокойство напрасно. :yahoo:

подтверждение регистрации по почте, капча, простая понятная

Значит лучше сделать как у всех, что поделать... <_<

Хорошо. Спасибо свсем за советы. :)

Link to comment
Share on other sites

  • 0

С куками понятно. А вот на счет механизма проверки с таймером и если что последующим баном мне не ясно. Я к тому что, единственное в голову приходит это создать в базе табличку к примеру `activity` и пихать в неё каждое подключение и ++счетчик в ячейке +время. но само по себе это и будет запрос даже когда бан, я должен буду получать ip клиента, обрабатывать на серве и отфутболивать. что тоже запрос. Или это нормальный вариант? Или это не то?

Пусть даже вся подсеть будет в бане из-за ip, это ничего, главное,

что бы серв был "морозоустойчевый" :lol: И спать спокойно.

ну можно в принципе не банить, но хотя бы на время оградить от посылки запросов типа автообновления браузера, тут Int приводил очень хороший вариант и я его взял себе на вооружение:


if (isset($_SESSION['flag']) && (time()-$_SESSION['flag'] < 15)) {
echo '<h1>Защита от повторного обновления! Нужно подождать 15 сек...</h1>';
} else {
//тут код занесения инфы в бд...
echo '<h1>Информация успешно добавлена!</h1>';
$_SESSION['flag']=time();
}

время можно и побольше выставить, например минуты 3, для регистрации пойдет.

ну это не совсем паника, но и увлекаться тоже не стоит, в меру все, в меру ;)

  • Like 1
Link to comment
Share on other sites

  • 0

Во-первых, помните, что сессии можно применять только тогда, когда они нужны самому пользователю, а не для того, чтобы чинить ему препятствия. Ведь он в любой момент может избавиться от идентификатора!

Скажем, при проверке на то, что заполняет форму человек, а не скрипт, пользователь сам заинтересован в том, чтобы сессия работала - иначе он не сможет отправить форму! А вот для ограничения количества запросов к скрипту сессия уже не годится - злонамеренный скрипт просто не будет возвращать идентификатор.

но хотя бы на время оградить от посылки запросов типа автообновления браузера

Я думаю это хорошая защита от дурака (ну или от нервного :D).

Честно говоря меня пугает подтверждение регистрации по мылу тем, что я этого еще не делал и мне кажется, одним

bool mail ()

и `secret` в базе тут не отвертишься. Предположу, что нужно будет хитро настроить что-то на серве и поговорить с буржуйской т.п. :mellow:

Link to comment
Share on other sites

  • 0

Предположу, что нужно будет хитро настроить что-то на серве и поговорить с буржуйской т.п. :mellow:

возможно, но это только тогда, когда имеет место быть, а заранее... ну хз, драть на попе волосы...

а на счет т.п. :) так они вам сами отрубят сайт, когда запросов к нему будет превышать установленный лимит, что бы их хост не вешать ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy