Подтвердить что ты не робот

Как сохранить секретные ключи API при использовании Javascript на стороне клиента?

Например, ознакомьтесь с этим плагином Facebook.

На стороне клиента хорошо видна клавиша API. Что мешает другому пользователю получить этот ключ и использовать эту функцию на другом сайте?

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

Если бы я должен был создать что-то подобное, как бы я мог обеспечить процесс аутентификации?

Я хочу, чтобы большая часть этой работы была на стороне клиента, хотя определенная форма аутентификации сервера потребуется обязательно? Любые ссылки или советы будут очень признательны.

Обновление

Аналогичные question ключи API, которые я нашел полезными.

4b9b3361

Ответ 1

В трех словах: проверка на стороне сервера. Сам FB выдает ошибку, если вы используете неверный ключ для данного сайта. Ключ API не должен быть секретным (в отличие от секретного ключа).

Ответ 2

Я не делал этого сам, но я знаю, что тот тип атаки, о котором вы беспокоитесь, называется Cross-Site Request Forgery (CSRF). Статья в Википедии дает несколько советов о том, как предотвратить ее.