Правильно запрашивать конфиденциальные данные с удаленного сервера

0

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

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

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

  1. Не могли бы вы пролить свет на эту проблему?
  2. Как вы получите данные правильно и безопасным способом?
  3. Нужно ли мне создавать целую логику, которая делает ее безопасной?
  4. Должен ли я использовать запросы POST?
  • 1
    ssl + управление сессиями. Запросы на получение являются подходящими, так как вы получаете данные, а не публикуете данные. Безопасность должна вращаться вокруг пользователя, вошедшего в систему, и от того, авторизован ли пользователь для просмотра указанных данных.
  • 0
    Было бы неправильно использовать POST для получения данных? как насчет запросов на сеанс или что-то в этом роде?
Показать ещё 3 комментария
Теги:

1 ответ

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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню