Как проверить, поступает ли запрос к моему домену из надежного источника или реферера в Java?

У меня есть требование от клиента проверить реферера http-запроса. Если реферер из определенного списка веб-сайтов, я разрешаю им доступ к приложению, иначе я должен направить их на страницу входа. Надеюсь, я понял требование.

Я использовал httpRequest.getHeader("referrer") для получения реферера, и код работает нормально, когда связь между двумя http-клиентами. Теперь приложения-отправители перемещаются на https, и мой реферер становится нулевым в приложении-получателе, поскольку https (отправитель) не отправляет заголовок в запросе.

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


person Swarup Reddy    schedule 15.10.2014    source источник
comment
Никогда не используйте заголовок реферера, чтобы определить, можно ли доверять пользователю. Его можно внедрить по желанию, используя любое количество плагинов для браузера или отдельный код. Также посмотрите на это: en.wikipedia.org/wiki/HTTP_referer#Referer_hiding   -  person nablex    schedule 15.10.2014


Ответы (1)


Я не знаю, какое приложение или http-сервер вы используете, но я думаю, что хорошей идеей является использование двухсторонней аутентификации ssl, эта технология идентифицирует сертификаты клиента и сервера. Вы должны создать серверные и клиентские сертификаты, и только доверенные клиенты (сертификаты которых помечены как доверенные в вашем хранилище ключей) могут получать данные.

P.S. Не используйте самоподписанные сертификаты

person rpc1    schedule 15.10.2014