Здравствуйте.
На одном сервере — форум, на другом — сайт.
Нужно сделать так, чтобы пользователь, нажимающий на ссылку именно на том сайте, автоматически регистрировался на форуме.
Я так понимаю, на том сайте можно сделать ссылку вида http://forum/register.php?ref=12345
где 12345 — некоторый особый код для регистрации.
При нажатии на нее на том сайте писать в куки определенные данные.
На форуме проверять $_GET['ref'], $_COOKIE и $_SERVER['HTTP_REFERER']
Но как быть уверенным в том , что пользователь пришел именно с того сайта? (ведь $_SERVER['HTTP_REFERER'] можно подделать при желании).
Что Вы предлагаете делать GET-запросом?
Как с помощью него проверить что пользователь нажимал ссылку.
Насколько я понимаю, Вы предлагаете при нажатии на ссылку сохранять признак того что пользователь ее нажал либо в базе либо где-то еще. А потом с помощью GET запроса обращаться к какому-нибудь php-скрипту на этом сайте, который уже проверяет в базе — нажимал пользователь ссылку или нет.
Re[7]: Проверить достоверность источника данных. PHP
W>Насколько я понимаю, Вы предлагаете при нажатии на ссылку сохранять признак того что пользователь ее нажал либо в базе либо где-то еще. А потом с помощью GET запроса обращаться к какому-нибудь php-скрипту на этом сайте, который уже проверяет в базе — нажимал пользователь ссылку или нет.
Да, сохранять в базе. Все верно.
Как вариант, можно сделать с точностью до наоборот и без базы на "сайте" — юзер щелкает ссылку на "сайте",
а "сайт" через сокеты по протоколу HTTP POST отправляет данные на "форум", тем самым регистрируя пользователя.
Поскольку запрос будет с "сайта", а не с клиента, проверить подлинность вроде проблем не составляет по IP?
Хотя, если вообще делать строго "по уму", то "сайт" отправляет вместе с данными свой SSL сертификат, а "форум" его проверяет.
Теоретически такое вроде можно на php сделать, на практике же не пробовал.
Re[8]: Проверить достоверность источника данных. PHP
М>>Поскольку запрос будет с "сайта", а не с клиента, проверить подлинность вроде проблем не составляет по IP?
W>так эти данные (в том числе) и IP можно подделать при обращении к сайту?
Стоп. Как это — подделать IP в данном контексте, т.е. чтобы "форум" подумал что запрос идет с "сайта"?
Не понимаю о чем речь.
Re[10]: Проверить достоверность источника данных. PHP
Здравствуйте, маген, Вы писали:
М>Стоп. Как это — подделать IP в данном контексте, т.е. чтобы "форум" подумал что запрос идет с "сайта"? М>Не понимаю о чем речь.
Ну да, разве это невозможно?
А как Вам вот такой способ:
на том сайте пользователь получает одноразовую ссылку
forum.ru/register.php?d=данные+дата&h=хеш
где хеш=md5(данные+дата.секретное_слово)
на форуме проверяем этот хеш.
Re[11]: Проверить достоверность источника данных. PHP
Здравствуйте, warobushek, Вы писали:
W>Здравствуйте, маген, Вы писали:
М>>Стоп. Как это — подделать IP в данном контексте, т.е. чтобы "форум" подумал что запрос идет с "сайта"? М>>Не понимаю о чем речь.
W>Ну да, разве это невозможно?
Теоретически возможно (ip spoofing?), но это совсем другой уровень взлома,
вобщем не та ситуация по-моему, чтоб его рассматривать.
W>А как Вам вот такой способ: W>на том сайте пользователь получает одноразовую ссылку W>forum.ru/register.php?d=данные+дата&h=хеш W>где хеш=md5(данные+дата.секретное_слово)
W>на форуме проверяем этот хеш.
Вобщем-то вполне нормально, по-моему.
Re[9]: Проверить достоверность источника данных. PHP
М>>Поскольку запрос будет с "сайта", а не с клиента, проверить подлинность вроде проблем не составляет по IP?
W>Но в случае обычного HTTP-запроса, можно ведь подделать всю эту информацию. Так ведь?
ты делаешь этот запрос curl'ом с собственного сервера.