У меня есть веб-сервис JSON, который я хочу предоставить только определенным сайтам. Это сервис, который будет вызываться через JavaScript с помощью JSONP. Как я могу предотвратить (или в лучшем случае затруднять) несанкционированные сайты от доступа к нему? Требование пользователя/пароля не будет работать, потому что это будет явно видно в JavaScript.Защита веб-службы JSON
Пример: Мой веб-сервис в домене com.com предоставляет информацию о погоде, и я хочу, чтобы на веб-сайте и веб-странице был доступен доступ к нему. Но поскольку веб-служба доступна через JavaScript, lazywebsite.com может просто просмотреть источник веб-сайта/веб-страницы и скопировать/вставить их код JavaScript.
Мои мысли до сих пор:
- Используйте ключ API и протоколирования,
HTTP_REFERER
, где услуга доступна из. Это не идеально, так какHTTP_REFERER
является ненадежным. - Имейте веб-сайт.com.com/webpage.com, создавая уникальный серверный сервер, используя алгоритм, который я предоставляю, сохраняю его в сеансе и использую в качестве ключа для доступа к веб-службе. Таким образом, токен регистрируется только для этого конкретного посетителя, и JS нельзя копировать/вставлять. Затем проблема переходит на сайт website.com/webpage.com, защищая их страницу, которая генерирует уникальный ключ.
Есть ли лучшие решения?