Это ужасно, да. Но мои два цента:
Если ваши потребности в безопасности значительно перевешивают ваши потребности в скорости, то используйте прокси на стороне сервера ... Это в основном то, что делают все, большинство прокси маскируются тем или иным способом, некоторые являются сторонними службами, некоторые являются крошечными автономными приложения rails / express / etc, некоторые являются лишь конечной точкой в вашем существующем приложении, некоторые используют google appengine, но не обманывайте себя, большинство людей используют прокси.
Если ваша потребность в скорости значительно перевешивает вашу потребность в безопасности: тогда используйте «небезопасный» способ раскрытия вашего ключа. Это не так уж и плохо, поскольку вы отделяете данные, чувствительные для ваших пользователей, которые не поступают из четырехугольников из данных, получивших доступ через четырехугольник. Вы делитесь только некоторыми потенциально фальшивыми гео-данными, некоторыми фальшивыми данными о местах, и вы получаете представление: это не финансовые отчеты вашего пользователя, это большая игра под названием Foursquare. Что еще хуже, время от времени меняйте свой ключ API.
IMO, в таких ситуациях нет среднего уровня, вам нужно уравновесить его в своей голове, чтобы одно значительно перевешивало другое (безопасность против скорости). Мне еще предстоит увидеть ситуацию, когда оба они действительно и честно одинаково важны, и ничто не может быть обменено.