Forum Webscript.Ru

Программирование => PHP => Тема начата: Foshvad от 13 Февраля 2002, 01:57:49

Название: Защита скрипта от «левых» данных
Отправлено: Foshvad от 13 Февраля 2002, 01:57:49
Есть следующая проблема:
Есть скрипт, допустим гостевая книга. В нее пользователи POST’ом отправляют сообщения. Но при этом некоторые начинают шкодить и лить циклом левые данные по максимально возможной длине. Реферал проверяется. Но, понятноe дело, его и все остальное можно самому сгенерировать.

Вопрос: как остановить этот беспредел или, другими словами, как проверять, послал данные браузер или скрипт?
Название: может поможет
Отправлено: Britva от 13 Февраля 2002, 02:05:47
http://forums.webscript.ru/showthread.php?s=&threadid=2838
Название: Защита скрипта от «левых» данных
Отправлено: Foshvad от 13 Февраля 2002, 02:52:51
это я давно прочел, иначе бы совсем маничка была :)
А как кроме этого?
Неужели никто не сталкивался с этой проблемой?
Название: Защита скрипта от «левых» данных
Отправлено: Lion от 13 Февраля 2002, 08:07:25
Ну не разрешай с одного ип часто кидать что то в форму.
А проверить, броузер или скрипт послал, думаю никак нельзя.
Название: Защита скрипта от «левых» данных
Отправлено: Dm от 13 Февраля 2002, 22:40:15
HTTP запрос в скрипте можно смоделировать точно такой же, как и в броузере. Нужно проверять все данные, длину, символы и т.п.
Название: Защита скрипта от «левых» данных
Отправлено: Макс от 14 Февраля 2002, 13:12:45
Цитировать
Нужно проверять все данные, длину, символы и т.п.
Простая проверка не защитит от такой ситуации, как описал Foshvad. Я бы ему посоветовал почитать на detauls.phpclub.net статьи про авторизацию. Там была описана защита от подбора пароля. Думаю похожим алгоритмом можно и тут воспользоваться. Хотя наиболее простое - это то что Lion предложил:
Цитировать
Ну не разрешай с одного ип часто кидать что то в форму
Название: Защита скрипта от «левых» данных
Отправлено: NFalse от 14 Февраля 2002, 14:59:14
Цитировать
А проверить, броузер или скрипт послал, думаю никак нельзя.

Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...
Название: Защита скрипта от «левых» данных
Отправлено: Макс от 14 Февраля 2002, 16:09:14
Цитировать

Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...
Скриптом и куки можно подделать и переменные
Название: Защита скрипта от «левых» данных
Отправлено: Dm от 14 Февраля 2002, 17:27:36
Цитировать
Ну почему нельзя? Можно юзать кукки (запарка...ненавижу)... А можно поступать хитро и ловить переменные $HTTP_USER_AGENT, $SCRIPT_FILENAME, REQUEST_URI...
Надеюсь идея понятна...


Кто мешает полностью повторить броузер? ;)


Цитировать
Хотя наиболее простое - это то что Lion предложил:
Ну не разрешай с одного ип часто кидать что то в форму.


И это тоже. ИМХО, необходимо делать все, что может предотвратить нападения. Т.е. и установка временного интервала по ip, и проверка данных не мешает.
Тем более, если данные передаются в запросы sql.
Название: хм....
Отправлено: Foshvad от 16 Февраля 2002, 00:54:15
Честно, все о чем посоветовали я в общем-то знал, но наивно надеялся, что без этого можно как-то обойтись. Браузер с куками действительно лёгко эмулируют, а когда кто-то приходит с провадерского прокси - начинают сыпаться письма от остальных пользователей. Да и количество выборок для проверки всего этого немаленькое.
Сейчас приходится при определенных условиях выдавать сообщение о том, что его сообщение появится после проверки модератором. Проблема в том, что пользователю не объяснишь из-за чего все это происходит.
Название: А может...
Отправлено: Lion от 16 Февраля 2002, 01:11:13
используя куки сделать что бы юзер сразу видел свое сообщение, а другие посетители только после проверки админом ? А если куки выключены, тогда уже говорить юзеру что его сообщение будет проверено перед опубликованием.
Название: Защита скрипта от «левых» данных
Отправлено: Foshvad от 16 Февраля 2002, 17:19:57
2Lion: а вот это уже идея. Спасибо за совет, попробую!
Название: Защита скрипта от «левых» данных
Отправлено: Dm от 17 Февраля 2002, 01:53:15
Хм... странно получается... а если юзер, к примеру, сразу хочет похвалиться кому-то, что он где-то что-то написал?
Если размещение идет через проверку админом, то нужно сразу и говорить ему, что пока не проверим, не увидишь!
(только мое имхо)
Название: Защита скрипта от «левых» данных
Отправлено: Foshvad от 17 Февраля 2002, 11:03:54
2 Dm: через проверку админом будет идти только в том случае, если в течении, скажем 30 секунд было обращение с данного ip, или если что-нить нехорошее было найдено в сообщении. В остальных случаях можно публиковать сразу.
Название: Защита скрипта от «левых» данных
Отправлено: AlieN от 19 Февраля 2002, 14:47:33
Я бы просто заблокировал мессаги с одного IP на 30 секунд + искал текст отправленный спамером в уже имеющихся за один один день +  не использовал бы куки
Название: Защита скрипта от «левых» данных
Отправлено: Dm от 19 Февраля 2002, 17:24:40
Кстати, такая система реализована в этом форуме.
И в opensource аналоге - openbb.