JSONP реферер URL-адрес определить - PullRequest
3 голосов
/ 04 января 2012

У меня есть плагин jquery, и я использую jsonp для междоменного вызова файла jsp.Я хочу ограничить возвращаемые значения jsp только для определенных сайтов в нашей базе данных.Чтобы добиться этого, мне нужно каким-то образом получить IP-адрес или URL-адрес веб-сайта, вызванный вызовом jsonp, а не IP-адрес клиента / пользователя.Я пробовал значение referer в заголовке http, но это не будет работать с IE, и я думаю, что это тоже не лучшее решение.Как я могу теперь безопасно узнать, кто вызывает мой jsp-файл с помощью моего плагина с его сайта?

Заранее спасибо.

1 Ответ

1 голос
/ 04 января 2012

Самый простой ответ заключается в выдаче каждому веб-сайту уникального ключа или другого идентификатора, который они включают в свой запрос.Вы анализируете этот идентификатор и соответствующим образом сгибаете свой ответ.

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

Можно использовать реферер (если имеется) в качестве двойной проверки, но, как вы указалиЭто ненадежно и происходит с ненадежного клиентского компьютера, эта часть запроса также может быть подделана.

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

...