Как проверить, что запрос поступает из определенного шлюза в PHP?
Я построил веб-приложение, которое позволяет пользователям видеть некоторые данные оттуда дома. Дома у каждого пользователя есть шлюз, который отправляет эти данные в php-скрипт. Затем этот скрипт вставляет данные в мою базу данных MySQL.
Мне нужен скрипт, чтобы проверить, что запрос, который он обрабатывает, исходит от шлюза и правильного шлюза. Таким образом, нельзя передавать данные с чужого шлюза или просто использовать веб-браузер для передачи поддельных данных. Но как это построить?
Я придумал следующие идеи решения:
- Проверьте заголовок HTTP, чтобы увидеть, какой пользовательский агент используется.
- Проверьте IP-адрес, поскольку он сохранен в базе данных.
- Используйте систему токенов.
Я знаю, что проверка IP-адреса не очень хорошее решение, так как публичные IP-адреса могут измениться или использоваться кем-то другим. Но что будет лучшим решением? А у вас, ребята, есть какие-нибудь советы или примеры кода в системе токенов? Спасибо за вашу помощь.
1 ответ
Лучшее решение - 3-я, система токенов, потому что пользовательский агент может быть изменен с помощью аддона браузера или каким-либо другим способом, IP-адрес может быть динамическим, и даже если вы используете как пользовательский агент, так и проверку IP-адреса, у вас есть большой шанс идентифицировать пользователя неправильно. Но в случае использования системы токенов, когда токен будет сгенерирован динамически и будет действовать только для следующего запроса, это сделает ваше приложение более безопасным. Вот хороший пример: