Определить входящий URL/HTTP_REFERER без подделки

Краткое объяснение:

Пользователь получает ссылку на вставку iframe (например: <iframe src="https://www.platform.com/HASH">)

  1. Используя HASH из URL-адреса, определите пользователя, проверьте, исходит ли запрос из одного из доменов пользователя, и увеличьте просмотр.

  2. Логика подсчета просмотров: если покупатель (клиент пользователя, а не мой) вызывает страницу пользователя, то увеличьте количество просмотров, и покупатель того же пользователя сможет вызывать страницу столько раз, сколько он хочет в течение следующих 30 минут, без увеличения количества просмотров.

Любой совет, как 1. и 2. могут быть реализованы. Спасибо за вашу поддержку.

@Dave Дэйв, я не прошу тебя писать для меня код, я просто вежливо спрашиваю, какие есть возможности для реализации вышеупомянутого сценария, не более того.

J. Taiga 13.02.2019 15:23

Боюсь, так работает SO. Вы должны показать нам свои усилия, и мы постараемся помочь вам. Пожалуйста, взгляните на ссылки в моем комментарии для получения дополнительной информации.

Dave 13.02.2019 15:24

Боюсь, то, о чем вы просите, невозможно. Пользовательские агенты и заголовок Реферер HTTP всегда могут быть подделаны клиентом. С точки зрения сервера вы не можете проверить правильность этих значений и должны принять их за чистую монету. Поэтому, если вам нужно быть абсолютно уверенным, вам нужно использовать что-то вроде ОАут 2.0...

War10ck 13.02.2019 15:44

Похоже, проблема здесь в том, что вы вознаграждаете просмотры (которые довольно бесполезны и легко подделывается даже без ботов), а не конверсии.

Quentin 13.02.2019 15:45

@Quentin не вознаграждает, взимает плату с клиента за просмотр.

J. Taiga 13.02.2019 16:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
46
1

Ответы 1

Я бы предложил предложить API вашим клиентам и использовать Паспорт (OAUTH2) для аутентификации, потому что HTTP_REFERER можно изменить, и ничто не мешает мне взять токен у одного из ваших клиентов.

Спасибо за ваш вклад, я уже думал об использовании OAUTH2, но проблема в том, что мы хотим максимально упростить его для наших покупателей моделей, чтобы они могли встраивать его куда угодно (WP/Static HTML/PHP/JS), не беспокоясь об API и все это. Isnt there any other way, other thanHTTP_REFERER` для 100% определения входящего URL-адреса запроса без подделки. Спасибо :) HTTP_REFERER

J. Taiga 13.02.2019 15:30

Я так не думаю. Вам нужно будет решить, стоит ли отдавать предпочтение простоте над безопасностью. Например, Google Maps, кажется, отдает приоритет простоте своих ключей API, как обсуждалось здесь, которые, скорее всего, реализованы аналогично тому, что вы хотите сделать. Для них имеет смысл просто принять риск, потому что данные не настолько конфиденциальны. Я бы сказал, что делать запрос GET не так уж и много, чтобы требовать от клиентов. Просто предоставьте хорошую документацию.

arxzur 13.02.2019 15:47

Я просто хочу реализовать ту же логику, что и gmaps. Например, даже код встраивания gmaps с действительным токеном не работает, если запрос не поступает из правильного домена.

J. Taiga 13.02.2019 16:04

Как говорится в треде, на который я ссылался, он все еще уязвим для спуфинга, но если вы считаете, что это имеет смысл в вашем случае, сделайте это. Если вам нужна реальная безопасность, реализуйте OAUTH2.

arxzur 13.02.2019 16:15

Другие вопросы по теме