/ / Как да потвърдим, че достъпът до нашия сървър-api е само от нашия phonegap ап? - уеб-приложения, cordova, jquery-mobile

Как да потвърдите, че е само нашето телефонно приложение, което е достъпно за нашите сървъри? - уеб приложения, cordova, jquery-mobile

Използваме jQuery Mobile и Phonegap за производствоприложение за iOS & Android, което ще бъде показано в двата магазина. Приложенията ще изтеглят данни от отдалечен сървър, използвайки Javascript и типичните ви ajax / JSONP разговори.

Надяваме се някак си да удостоверимприложение с нашия бекенд. Обикновено можете да ограничите достъпа до отдалечено API от конкретен домейн, не можем да направим това, защото файловете ще се съхраняват локално и ще използват протокола file: //, затова използваме JSONP, за да избегнем същия произход на политиката.

Щяхме да създадем низ за удостоверяванеизползвайки passphrase + timestamp + deviceID, криптирайте го и след това направете същото нещо на сървъра. Скоро разбрахме, че хората ще имат достъп до нашите javascript файлове достатъчно лесно, а объркването на javascript не е 100% сигурно от това, което съм чел досега.

Всякакви идеи за това как да ограничите достъпа до API само за приложението или това е само случай на правене на всичко, което можем и оставяйки нашия API доста открит?

Благодаря ти.

Отговори:

1 за отговор № 1

Phonegap се разпространява като специален проект. Това ви позволява да го модифицирате, като добавите нова API функция, която ще бъде компилирана и доста безопасна.

Новата функция в api ще изчисли хеш от дадено семе и ще го върне. След това се нуждаете от същия код на сървърната страна.

Хеш на семето и сол, вградени внимателно в родния код на приложението, би било достатъчно.

Бинарна може да бъде достатъчно замаскана, за да попречи на хората да открият солта и има допълнителни усложнения, които можете да използвате - например изберете солта като част с дълъг низ, определен от семето.


0 за отговор № 2

Обфускацията на JavaScript е 0% сигурно; това е възпиращо, а не истинско решение. Можете да стартирате всеки измазан / замаскиран JavaScript през реверсър и да получите пълен код. Също така, с малко усилия някой може да фалшифицира отговорите на PhoneGap API на информацията за устройството, така че единственият сигурен начин да се избегне това е да се използват сертификати в контейнера за приложения, за да се съобщи първоначално ръкостискане от приложението. Както iPhone, така и андроидният подход варират според детайлите, но това е единственото реално решение на проблема. Можете да използвате други подходи, като например да разглеждате изходните IP адреси и да сте сигурни, че те са от мобилните доставчици, но това е движеща се цел.


0 за отговор № 3

Мисля, че това е нещо като catch22 на хибридни приложения. Вероятно най-добре е да използвате токен, генериран от родния код. Има уроци, които ви показват как да създадете потребителска функционалност в родния код, който се връща обратно в JS.