|
|
|
|
|
для: cheops
(02.07.2005 в 17:13)
| | cheops как всегда премного благодарен за оч хороший ответ =)
ЗЫ:хотя мне показалось что раньше чем понедельник я его не услышу,
потому сгонял на пхп клаб пришлось региться и создавать такую ж тему.......
ну да ладно лишним не будет.....
спасибо! | |
|
|
|
|
|
|
|
для: TrunK
(02.07.2005 в 14:48)
| | Это как раз и решается при помощи прошивки сессии - помещение в скрытое поле уникальное значение, которое знает только сайт. method-у этого не достаточно.
PS Проблема в том, что HTML-форма на самом деле находится не на сервере - она отправляется клиенту и клиент, заполнив её отправляет данные на сервер. Поэтому данные всегда идут с клиентской машины. Поэтому можно поставить робот, который со скоростью 20 сообщений в минуту 24 часа в сутки будет постить сообщения... Вот, кстати, ещё одно решение - проверять сколько времени прошло с момента последнего помещения сообщения с данной сессии - если менее 5 секунд, не помещать повторные сообщения. Если таких попыток будет больше 10 - блокировать размещение сообщений с данной сессии. | |
|
|
|
|
|
|
|
для: method
(02.07.2005 в 13:45)
| | Нет другой автоматической проверки у вас не выйдет, не зависимо от того, знаю я это или нет :))) так как это не позволяет сам протокол HTTP - он не сессионный. Это означает, что сервер, отправившего HTML-форму клиенту, дальнейшая её судьба не волнует, с какого адреса придёт ответ, получал ли этот клиент перед этим форму, сокет ли обращается или какой другой зверь, Web-серверу совершенно наплевать. Именно для решения проблем, возникающих в этом случае были введены cookie и сессии. Ничего лучшего на настоящий момент нет.
Вы можете поставить дополнительную проверку на USER_AGENT, но USER_AGENT легко подделать и вряд ли это остановит злоумышленика. Возможно слабым утешением вам будет тот факт, что за всё время существование нашего форума случаев автофлуда не было, хотя его посещает большое число посетителей подавляющее большинство из которых неслабо разбирается в PHP. | |
|
|
|
|
|
|
|
для: TrunK
(02.07.2005 в 14:48)
| | привидите пример.... | |
|
|
|
|
|
|
|
для: method
(02.07.2005 в 13:45)
| | Поставить проверку на то, с какого сайта пришли данные... | |
|
|
|
|
|
|
|
для: cheops
(02.07.2005 в 11:37)
| | cheops скажите не томите если
знаете что нить кроме того что вы уже
посоветовали, т.е.
<?php
<input type="hidden" name="id" value=" <?php print session_id();?>">
?>
|
| |
|
|
|
|
|
|
|
для: method
(02.07.2005 в 06:57)
| | Нет, так как у злоумышленика будет своя собственная копия формы, в которую он подствит те, значения которые захочет, или он вообще не будет прибегать к HTML-форме и сделает всё через сокеты, напрямую обращаясь к обработчику. | |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 20:08)
| | тогда может как нибудь сравнивать чё нить с чем нить относительно
scriptname и его место расположения?
вот такое даст гарантию:
<?php <form action="<?=$_SERVER["SCRIPT_NAME"]?>" method=POST>
?>
|
??? | |
|
|
|
|
|
|
|
для: method
(01.07.2005 в 15:07)
| | IP-адрес нам ничего не даст... так как всегда будет подставляться адрес посетителя, а какая форма используется, с этого хоста или другого проверить нельзя, так как посетитель отправляет данные тоже со своего хоста. Введите бан по IP-адресу и особенно отличившимся закрывайте доступ к чату на некоторое время. | |
|
|
|
|
|
|
|
для: Гость..
(01.07.2005 в 14:45)
| | Из статьи Владислава Путяка:
Однако я бы посоветовал не применять блокировку IP - ее можно элементарно обойти, а многие пользователи прокси серверов могут страдать из-за нее. Гораздо разумнее применить задержку авторизации. Т.е. непосредственно перед проверкой корректности логина и пароля делаем задержку, скажем на 1 секунду. Пользователи ее скорее всего даже не заметят, а вот у хакеров скорость перебора упадет ниже 1 комбинации в секунду, что фактически полностью исключает возможность перебора пароля даже по специальному словарю. Осуществить задержку можно так:
<?php sleep(1); //задержка на 1 секунду?>
|
Вот такие пироги....
А у меня чуть другая задача,пресечь отправку из форм
с других хостов, читай посты выше...
PS cheops вы где? | |
|
|
|
|