Как определить запросы API, поступающие от определенного пользователя c? - PullRequest
0 голосов
/ 12 февраля 2020

Я создаю этот API, который будет получать данные с сайтов. Как и в Google Analytics (не совсем).

У меня есть следующая модель:

class Site < ApplicationRecord
  has_many :metrics
end

Мой API также имеет конечную точку, на которую клиент будет отправлять данные. Прямо сейчас эта конечная точка не защищена, и любой человек может отправлять на нее данные. Мне интересно, можно ли как-то определить, что данные поступают с реального сайта, а не кто-то, например, отправляет их почтальоном. Я знаю, что Google Analytics не требует ключа, вы просто устанавливаете взломанный на веб-сайте, и вы хорошо для go.

Можно ли отфильтровать запросы на основе параметра, который будет иметь только реальный веб-сайт?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Я бы порекомендовал реализовать токены с вашим API, если вы хотите иметь безопасность и контроль над любой из ваших открытых конечных точек. Devise-JWT - это одно продуманное решение для оформления заказа.

0 голосов
/ 13 февраля 2020

Я не уверен, что получил ваш вопрос.

Вы хотите фильтровать запросы, которые позволяют обрабатывать только настоящий веб-сайт.

В вашем контроллере вы можете проверить пользовательский агент запроса с помощью request.env['HTTP_USER_AGENT']. Вы можете создать черный или белый список для обработки запросов. Тем не менее, существует множество пользовательских агентов.

...