Как настроить веб-ключ API с аутентификацией URL в Javascript и PHP? - PullRequest
0 голосов
/ 07 марта 2012

Итак, я читал, пока мои глаза не кровоточат, вот мой вопрос ...

Мой бэкэнд - PHP

У меня есть сервис, который я хочу разместить в сети, назовем его GREATSERVICE.com. Я хочу, чтобы люди подписывались на ключ API и ограничивали его доменом, чтобы его могли использовать только http://www. ????. Com . Я знаю, что могу просто сохранить API и домен, который человек вводит в базу данных.

Я зациклен на том, как проверить, что сервис доступен на соответствующем веб-сайте.

Я имею в виду, скажем, я путешествую по сети с адресом домена temp-13-43.xfinity.com и захожу на сайт servicehost.com. У servicehost.com есть ключ API .... как узнать, что к сервису обращаются с сайта servicehost.com, а не с адреса клиентов temp-13-43.xfinity.com ...

Так что я пытаюсь выяснить это в javascript на стороне клиента. Вроде как Google Maps. Карты просто загружают некоторый JavaScript на страницу с помощью ключа API, но ключ API проверяет URL-адрес ВЕБ-САЙТА, ​​а не клиента, посещающего веб-сайт.

Вот где я потерян. Как я могу проверить ДОМЕН сайта, на который зашел пользователь, и только если он верен с правильным API, тогда предоставим сервис.

Итак, в разделе заголовка у меня есть javascript

So on the SERVICEHOST site I give them the code so that they can use the mygreatservice widget. Think along the lines of the twitter embeded viewer

<SCRIPT type="text/javascript" src="http://mygreatservice.com/service.php?api=asdfasdfasdfa></SCRIPT

теги, которые указывают на страницу PHP для возврата необходимого JavaScript. Опять же, я просто хочу убедиться, что возвращаемый виджет используется на соответствующих сайтах в целях безопасности / отслеживания.

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Редактировать:

Попросите участников добавить эту строку на свой сайт: (например, я поместил этот код на моем сервере http://www.otherserver.com)

<script language="javascript" src="http://yourserver.com/service.php?token=342424adsasjdl34"></script>

в вашем файле service.php(размещено на вашем сервере):

$server = $_SERVER['SERVER_NAME']; // =www.otherserver.com
$apitoken = $_GET['token']; // the token 342424adsasjdl34 (don't forget to make it safe!)
0 голосов
/ 07 марта 2012

Вот где я потерялся. Как я могу проверить ДОМЕН сайта, который пользователь пошел и только если это правильно с правильным API, то оказать услугу.

Это даст вам много информации о хосте, который инициирует запрос:

echo $_SERVER

В частности echo $_SERVER['HTTP_HOST']

Теперь вам нужно проверить, имеет ли этот HTTP_HOST допустимый ключ API, который может проверить ваша веб-служба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...