2014-04-29 2 views
0

Я разрабатываю мобильное приложение, которое работает с удаленным сервером.Правильно запросить конфиденциальные данные с удаленного сервера

В моем приложении каждый из моих пользователей имеет пользовательские данные, которые содержат некоторые конфиденциальные данные. (хранится в db) Мой главный вопрос заключается в том, что, как только мой пользователь регистрируется/регистрируется в моем приложении, я хотел бы получить данные пользователя с сервера безопасным способом. В настоящее время я возвращаю данные JSON, используя простые запросы GET, такие как/getuser/id. Это явно не лучший способ вернуть конфиденциальные данные, поскольку он открыт для всех.

Простой поток для рассмотрения: Пользователь регистрируется, получает данные пользователя с сервера, сохраняет данные на устройстве пользователя.

  1. Не могли бы вы пролить свет на эту проблему?
  2. Как вы получите данные правильно и безопасным способом?
  3. Нужно ли создавать целую логику, которая делает ее безопасной?
  4. Должен ли я использовать POST-запросы?
+1

Ssl + сеанса управления. Получить запросы уместны, так как вы получаете данные, не отправляющие данные. Безопасность должна вращаться вокруг пользователя, входящего в систему, и независимо от того, разрешено ли пользователю просматривать указанные данные. –

+0

Неправильно ли использовать POST для получения данных? как насчет запросов на сеанс или что-то в этом роде? – Popokoko

+0

, используя POST вместо GET, чтобы данные работали (при условии, что ваш api поддерживает его), но пост не более безопасен, чем get. Это ничего не скрывает. Является ли это правильным или неправильным, является спорным. запросы на сеанс не имеют ничего общего с безопасностью и могут быть обойдены простым открытием нового сеанса (например, очистка файлов cookie). –

ответ

0

У меня есть несколько предложений для вас,

(1) Use secure encryption/decryption algorithms like AES-256 with user credentials based cryptographic key for sensitive data transmission in client server architecture. 
For more security you can use public key algorithm (like RSA-1024) to exchange symmetric key(Here AES) between client server. 


     1. @SERVER -----> generate Public-Private Key(RSA) ---> Send public key to Client.<br/> 
     2. @CLIENT------> generate unique AES key using hash(username+passwd+salt)----> Encrypt Hash Value using RSA public key ---> Send Encrypt value to SERVER<br/> 
     3. @SERVER------> decrypt Encrpted AES Key using private key(RSA). Now SERVER have got AES key & CLIENT have it already.<br/> 
     4. SERVER <------AES Encryption/Decryption----> CLIENT<br/> 

    (2) Use SSL/TLS protocol for transport layer security. 

    (3) Use POST method for improved security. 

    (4) Code obfuscation & jumble algorithms can be applied for secure key generation to avoid reverse engineering attacks upto a level. 
Смежные вопросы