2014-12-29 2 views
0

Я разрабатываю собственное приложение для iOS и имею серверную часть с сервером PHP с HTTPS.Безопасность между родным приложением iOS и сервером

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

Но: - Сервер «парень» решил отправить новый токен каждый раз, когда совершает звонок. Я думаю, что это плохой дизайн по нескольким причинам. - Должна ли она истечь? Если да, то как я могу без проблем обновить токен для пользователя? Если нет, разве это не уязвимо?

Отличный дизайн? Я также хотел бы узнать, что вы, ребята, используете в качестве своего дизайна безопасности?

Cheers.

ответ

1

Для защиты маркера на устройстве, используя SSKeyChain вместо NSUserDefaults. Нет необходимости генерировать новый токен для каждого вызова. Для каждого входа/регистрации использование может генерировать токен.

+0

Не существует проблемы с безопасностью без истечения срока действия? – Nam

+0

Нет как таковой, Но все равно, если хочешь. Обновите токен и в приложении, если токен не соответствует отправке обратно на экран входа в систему. – coreDeviOS

+0

«Если токен не соответствует ...» Вы бы обновили токен с существующим токеном? – Nam

0

Сохраните жетон в SSKeyChain. Используйте этот метод для повторного использования одного и того же токена.

- (NSString *)getUniqueDeviceIdentifierAsString 
{ 
    NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey]; 

    NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"incoding"]; 
    if (strApplicationUUID == nil) 
    { 
     strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
     [SSKeychain setPassword:strApplicationUUID forService:appName account:@"incoding"]; 
    }  
    return strApplicationUUID; 
} 
+0

Не существует проблемы с безопасностью без истечения срока действия? – Nam

+0

@Nam Вы можете сохранить срок действия недели или месяца, а не отправлять новые токены каждый раз. Лучший способ - сохранить токен в цепочке ключей и напомнить его каждый раз, когда пользователь обращается к приложению, поэтому пользователю не нужно снова входить в систему. Маркер должен быть вновь создан только после выхода из системы, а затем повторного входа в систему или после истечения срока действия исправления. –

+0

Я добрый новый во всей этой аутентификации на основе токенов. У вас есть пример хорошего шаблона дизайна для этого? – Nam

Смежные вопросы