Ограничение ключа API на основе URL: как работает проверка?

Мне интересно узнать, как работает ограничение API-ключа на основе URL, например, используемое Google для защиты своей службы Google Maps.

Насколько я понял из этой статьи "Ограничение доступа к службам Ajax», здесь задействованы две части: во-первых, служба создает специальный ключ для данного домена, используя одностороннюю хеш-функцию; и во-вторых, когда служба проверяет ключ на основе заголовка Referer.

Хотя статья довольно пояснительна, у меня все еще есть проблема, пытаясь понять, насколько безопасен метод проверки. Я имею в виду, если ключ проверяется только по рефереру, не так ли легко его подделать? Я думаю, что простого «127.0.0.1 www.mydomain.com» в файле hosts будет достаточно, чтобы обмануть проверку и подумать, что реферером является www.mydomain.com .

Возможно, я неправильно понял некоторые вещи, и некоторые разъяснения будут оценены.


person ivb    schedule 21.06.2009    source источник
comment
Похоже, ваша ссылка плохая. Если будет возможность поправить, с удовольствием посмотрю!   -  person Branden Hall    schedule 21.06.2009


Ответы (1)


В разделе «Ограничения» цитируемой вами статьи конкретно упоминается возможность подмены реферера.

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

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

person Rob Kennedy    schedule 21.06.2009
comment
Теперь я понимаю. Но я думаю, что если ключ API используется для записи данных в службу, например, в систему отслеживания аналитики, такую ​​как Google, кто-то может использовать модифицированный заголовок на своем компьютере для ввода ложных данных в службу. Практически я не вижу слишком много подделок такого рода, но теоретически, я думаю, это возможно. Спасибо за ваше время, ваш ответ и за исправление моей ссылки. - person ivb; 21.06.2009