Скрытие уникальных ключей API в webOS (Enyo / JavaScript) - PullRequest
1 голос
/ 16 июля 2011

Как скрыть мои личные ключи API в / для приложений на базе webOS - Enyo?

Из-за этой проблемы мое развитие в основном остановилось.

Поскольку webOS Enyo (как и Mojo) написан на Javascript, любой пользователь может подключить свое устройство и легко просматривать мой исходный код. Очевидно, я не могу просто воткнуть туда свои ключи. Даже если они зашифрованы, мое приложение должно будет включать механизм их расшифровки, чтобы использовать их. Я пытаюсь скрыть свои ключи API своего личного веб-сервиса (в основном, OAuth Twitter, Facebook, Google и т. Д.) И, возможно, свои личные ключи AWS.

До сих пор в ответах, которые я нашел, говорилось, что вы не можете защитить что-либо вроде закрытого ключа API в Javascript. Но все эти обсуждения были посвящены веб-приложениям, у которых есть легкие альтернативы использованию Javascript. Приложения webOS на самом деле не имеют хорошей альтернативы кодированию простых приложений в Javascript.

Единственный возможный путь - создать прокси, через который будут проходить все мои вызовы API. Это единственный выполнимый или идеальный вариант? Если это так, то не поможет ли мне файл node.js?

Будем весьма благодарны за любые ссылки, ресурсы, примеры, советы и т. Д. Я чувствую, что ответ должен быть мне в лицо, так как в наши дни многие приложения подключаются к этим сервисам, но у меня не было потенциальных клиентов. Спасибо.

Ответы [ 3 ]

2 голосов
/ 16 июля 2011

Ни одно приложение, имеющее подобные закрытые ключи на стороне клиента (кроме того, которое полностью для всего сервера), не может быть защищено от посторонних глаз.Это относится и к скомпилированному приложению C ++ для Windows.Если приложение собирается использовать закрытые ключи напрямую, то они находятся в коде или доступны для кода.Любопытные глаза могут их найти.Да, Javascript может сделать код немного более доступным, но это не проблема, которая является новой для приложений WebOS или Javascript.Если бы Enyo был кроссплатформенным инструментом для ПК / Mac, разве у вас не было бы той же проблемы с вашими ключами Twitter?

Обычно, что делается, когда ключи помещаются в какой-то механизм хранения во время установки.На ПК это может быть реестр или какой-то конфигурационный файл.Есть ли в WebOS механизм установки?Похоже, у них есть хранилище типа HTML5 - можете ли вы хранить их там во время установки.Они не будут защищенными от взлома (равно как и на любой другой платформе), но они также не будут лежать в вашем коде Javascript.

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

Если я неправильно понял вашу ситуацию, не стесняйтесь прояснить ситуацию и помочь мне лучше понять.

1 голос
/ 21 июля 2011

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

1 голос
/ 16 июля 2011

У меня такое ощущение, что наличие прокси-сервера - отличная идея. Прокси дает вам дополнительные преимущества добавления аутентификации пользователя и других функций без изменения на стороне клиента.

...