Forum Webscript.Ru
Программирование => PHP => Тема начата: Foshvad от 13 Февраля 2002, 01:57:49
-
Есть следующая проблема:
Есть скрипт, допустим гостевая книга. В нее пользователи POST’ом отправляют сообщения. Но при этом некоторые начинают шкодить и лить циклом левые данные по максимально возможной длине. Реферал проверяется. Но, понятноe дело, его и все остальное можно самому сгенерировать.
Вопрос: как остановить этот беспредел или, другими словами, как проверять, послал данные браузер или скрипт?
-
http://forums.webscript.ru/showthread.php?s=&threadid=2838
-
это я давно прочел, иначе бы совсем маничка была :)
А как кроме этого?
Неужели никто не сталкивался с этой проблемой?
-
Ну не разрешай с одного ип часто кидать что то в форму.
А проверить, броузер или скрипт послал, думаю никак нельзя.
-
HTTP запрос в скрипте можно смоделировать точно такой же, как и в броузере. Нужно проверять все данные, длину, символы и т.п.
-
Нужно проверять все данные, длину, символы и т.п.
Простая проверка не защитит от такой ситуации, как описал Foshvad. Я бы ему посоветовал почитать на detauls.phpclub.net статьи про авторизацию. Там была описана защита от подбора пароля. Думаю похожим алгоритмом можно и тут воспользоваться. Хотя наиболее простое - это то что Lion предложил:
Ну не разрешай с одного ип часто кидать что то в форму
-
А проверить, броузер или скрипт послал, думаю никак нельзя.
Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...
-
Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...
Скриптом и куки можно подделать и переменные
-
Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...
Кто мешает полностью повторить броузер? ;)
Хотя наиболее простое - это то что Lion предложил:
Ну не разрешай с одного ип часто кидать что то в форму.
И это тоже. ИМХО, необходимо делать все, что может предотвратить нападения. Т.е. и установка временного интервала по ip, и проверка данных не мешает.
Тем более, если данные передаются в запросы sql.
-
Честно, все о чем посоветовали я в общем-то знал, но наивно надеялся, что без этого можно как-то обойтись. Браузер с куками действительно лёгко эмулируют, а когда кто-то приходит с провадерского прокси - начинают сыпаться письма от остальных пользователей. Да и количество выборок для проверки всего этого немаленькое.
Сейчас приходится при определенных условиях выдавать сообщение о том, что его сообщение появится после проверки модератором. Проблема в том, что пользователю не объяснишь из-за чего все это происходит.
-
используя куки сделать что бы юзер сразу видел свое сообщение, а другие посетители только после проверки админом ? А если куки выключены, тогда уже говорить юзеру что его сообщение будет проверено перед опубликованием.
-
2Lion: а вот это уже идея. Спасибо за совет, попробую!
-
Хм... странно получается... а если юзер, к примеру, сразу хочет похвалиться кому-то, что он где-то что-то написал?
Если размещение идет через проверку админом, то нужно сразу и говорить ему, что пока не проверим, не увидишь!
(только мое имхо)
-
2 Dm: через проверку админом будет идти только в том случае, если в течении, скажем 30 секунд было обращение с данного ip, или если что-нить нехорошее было найдено в сообщении. В остальных случаях можно публиковать сразу.
-
Я бы просто заблокировал мессаги с одного IP на 30 секунд + искал текст отправленный спамером в уже имеющихся за один один день + не использовал бы куки
-
Кстати, такая система реализована в этом форуме.
И в opensource аналоге - openbb.