Есть сценарий, например на странице 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"] и по ней определить с правильной страницы была отправлена форма или нет.
Для этого необходимо посмотреть переменную $_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, это не самые простые способы. Капча в моем случае не подходящий вариант. При этом создание сессии - это тоже спорный вопрос.
Предположим, форма имеет скрытые поля, которые заполняются не пользователем, а скриптом. Злоумышленник создает идентичную форму на своем сайте и логинится на моем. Сессия начата, но он использует поддельную форму, а скрытые поля он у себя открывает и вводит в них поддельные данные.
Вот что меня беспокоит. Я конечно с сессиями пока не совсем разобрался, поправьте, если я не прав.
inpost, это не самые простые способы. Капча в моем случае не подходящий вариант. При этом создание сессии - это тоже спорный вопрос.
Предположим, форма имеет скрытые поля, которые заполняются не пользователем, а скриптом. Злоумышленник создает идентичную форму на своем сайте и логинится на моем. Сессия начата, но он использует поддельную форму, а скрытые поля он у себя открывает и вводит в них поддельные данные.
Вот что меня беспокоит. Я конечно с сессиями пока не совсем разобрался, поправьте, если я не прав.
Спустя 1 минута, 58 секунд (5.05.2011 - 23:10) inpost написал(а):
ASKNN
Этот геморой создавать? Нет уж, конечно сессия нужна конкретно для защиты от спама всякого, кто не заходит на сайт, а сразу пытается отправить данные.
Заголовки отправляются через CURL, либо header();
Этот геморой создавать? Нет уж, конечно сессия нужна конкретно для защиты от спама всякого, кто не заходит на сайт, а сразу пытается отправить данные.
Заголовки отправляются через CURL, либо header();
Спустя 7 часов, 23 минуты, 31 секунда (6.05.2011 - 06:33) twin написал(а):
Цитата |
twin, скажи вкратце, как можно подделать? |
Эдементарно - курлом. Там можно передать вообще что захочешь, кроме IP.
Это один из самых сложных вопросов - защита от сторонних форм. И скажу я вот что - нет такого решения, которое бы не обходилось. Так уж устроен интернет.
Самым эфективным является капча. Ну и есть еще куча всяких уловок, которые каждый придумывает индивидуально и держит в секрете.
Для того, чтобы как то с этим бороться, нужно изучить механизмы клиент-серверных взаимодействий и начать думать как противник. Что бы сделал я на его месте, каким образом смог бы обойти защиту.
Это один из самых сложных вопросов - защита от сторонних форм. И скажу я вот что - нет такого решения, которое бы не обходилось. Так уж устроен интернет.
Самым эфективным является капча. Ну и есть еще куча всяких уловок, которые каждый придумывает индивидуально и держит в секрете.
Для того, чтобы как то с этим бороться, нужно изучить механизмы клиент-серверных взаимодействий и начать думать как противник. Что бы сделал я на его месте, каким образом смог бы обойти защиту.