[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрет обработки формы с другого сайта
ASKNN
Только начинаю разбираться в PHP, подскажите мне пожалуйста ответ на такой вопрос:
Есть сценарий, например на странице index.php, в который передаются данные методом POST из формы, находящейся на странице form.html и заносятся в базу данных.

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

Пример формы
<form name="form" method="post" action="index.php"><input type="text" name="text1" value="555" /><input type="submit" name="submit" value="Отправить" /></form>




Спустя 3 часа, 40 минут, 5 секунд (3.05.2011 - 06:56) vilent написал(а):
да, есть. Когда вы переходите на другую страницу по ссылке или форме, то браузер посылает в заголовках ту страницу, откуда пришел пользователь.
Для этого необходимо посмотреть переменную $_SERVER['HTTP_REFERER"] и по ней определить с правильной страницы была отправлена форма или нет.

Спустя 10 часов, 46 минут, 31 секунда (3.05.2011 - 17:43) ASKNN написал(а):
vilent, больше спасибо!

Спустя 14 минут, 5 секунд (3.05.2011 - 17:57) twin написал(а):
REFERER очень легко подделать

Спустя 3 минуты, 54 секунды (3.05.2011 - 18:01) inpost написал(а):
ASKNN
капча, сессия.

Спустя 2 дня, 5 часов, 7 минут, 1 секунда (5.05.2011 - 23:08) ASKNN написал(а):
twin, скажи вкратце, как можно подделать?
inpost, это не самые простые способы. Капча в моем случае не подходящий вариант. При этом создание сессии - это тоже спорный вопрос.
Предположим, форма имеет скрытые поля, которые заполняются не пользователем, а скриптом. Злоумышленник создает идентичную форму на своем сайте и логинится на моем. Сессия начата, но он использует поддельную форму, а скрытые поля он у себя открывает и вводит в них поддельные данные.
Вот что меня беспокоит. Я конечно с сессиями пока не совсем разобрался, поправьте, если я не прав.

Спустя 1 минута, 58 секунд (5.05.2011 - 23:10) inpost написал(а):
ASKNN
Этот геморой создавать? Нет уж, конечно сессия нужна конкретно для защиты от спама всякого, кто не заходит на сайт, а сразу пытается отправить данные.

Заголовки отправляются через CURL, либо header();

Спустя 7 часов, 23 минуты, 31 секунда (6.05.2011 - 06:33) twin написал(а):
Цитата
twin, скажи вкратце, как можно подделать?
Эдементарно - курлом. Там можно передать вообще что захочешь, кроме IP.

Это один из самых сложных вопросов - защита от сторонних форм. И скажу я вот что - нет такого решения, которое бы не обходилось. Так уж устроен интернет.

Самым эфективным является капча. Ну и есть еще куча всяких уловок, которые каждый придумывает индивидуально и держит в секрете.

Для того, чтобы как то с этим бороться, нужно изучить механизмы клиент-серверных взаимодействий и начать думать как противник. Что бы сделал я на его месте, каким образом смог бы обойти защиту.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.