Сам ключ API - це, швидше за все, односторонній хеш домену, з яким пов’язаний ключ, і секрет, про який знає лише сервер Google API. Він може містити деякі інші відомі (для Google, звичайно,) відомості. Коли ви робите запит із цього домену, сервер API бере домен, з якого надходить запит, і робить той самий односторонній хеш-розрахунок і порівнює ці два значення.
Для викликів Ajax вони, швидше за все, використовують реферал, щоб отримати домен хоста документа. Незважаючи на те, що реферал може бути підроблений, врешті-решт, щоб використовувати API, вам потрібно отримати Google JavaScript для виконання в документі. На даний момент цей javascript може підтвердити, що документ, який викликав виклик API Ajax, походить з цільового сервера. Звичайно, це також можна підмінити, за умови, що у вас є власна реалізація DOM або модифікація сценарію на льоту. Однак це підмінювання повинно відбуватися на стороні клієнта, і шанси на те, що веб-сайт, який хоче використовувати Google API, зможуть підробляти клієнтське програмне забезпечення, досить малі.
Зауважте, що оскільки API по суті безкоштовний, вони також могли запропонувати анонімний доступ до свого API. Очевидно, що Google не має на меті захистити несанкціонований доступ до нього, а гарантувати, що вони зможуть зібрати якомога більше даних про використання цих даних і зможуть пов’язати це використання з іншими даними, які вони зібрали про цільовий домен. Як такий, я би не очікував, що перевірка ключа API буде набагато складнішою, ніж описана вище - рентабельність інвестицій у більш просунутий підхід занадто низька.
І, звичайно, є також стурбованість можливими атаками XSS через їх API. Але я не вірю, що їх ключ API занадто прив'язаний до будь-якого анти-XSS-коду, який у них є.