Как безопасно передавать данные с веб-сайта в приложение? - PullRequest
0 голосов
/ 13 июля 2020

У меня есть приложение android и iPhone, и приложения получают данные с моего веб-сайта на основе некоторых условий, которые они выбирают в приложении.

Я создал защищенный URL-адрес, который не открыт для publi c (не может быть найден на нашем веб-сайте) и с использованием кода ha sh, который я считал достаточно безопасным. Примерно так:

http://test.com/data/get_data.php?key=akl;sd8234

Дополнительные условия, которые они выбирают в приложении, будут добавлены в качестве параметров запроса к тому же URL-адресу.

Исходя из условия, файл php будет выводить данные в формате json.

Однако недавно я обнаружил, что кто-то другой создает такое же приложение и фактически получает данные с моего сервера и из секрета. созданный мной URL. Причина, по которой я знаю, заключается в том, что я что-то изменяю на этой секретной странице get_data. php, и это отражается в их приложении.

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

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

В дополнение к ответу Shayegh , вы должны понимать, что каждая конечная точка, к которой вы получаете доступ в своем приложении, по своей природе является publi c. Каждый может получить доступ к конечной точке вашего сервера так же, как и ваше мобильное приложение (созданное вами). Однако вы можете сделать конечную точку своего сервера защищенной , добавив требования авторизации на своей конечной точке.

Авторизация

Существует множество протоколов авторизации, OAuth, OAuth2.0, Basi c Auth (учетные данные, такие как адрес электронной почты и пароль), et c. Все это всего лишь способы предоставить кому-либо доступ к ресурсам в вашей конечной точке. Думайте об этом как о замке на двери вашего дома, только кто-то с ключом может go проникнуть в ваш дом и устроить беспорядок.

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

Дополнительные вопросы и ответы

  1. Я попытался сгенерировать файлы журнала из моего Телефон android, и я не могу найти файл. php в файлах журнала. Возможно ли для кого-то декодировать приложение android или приложение iphone, чтобы они могли просматривать мой исходный код?

    Ответ: Я всегда предполагал, что все, что происходит на стороне клиента (мобильное приложение, интерфейс WebApp и т. д. c) я не могу контролировать. Это означает, что каждый может получить доступ, прочитать и настроить мои клиентские приложения. С учетом сказанного, я предполагаю, что кто-то действительно может распутать ваше приложение android / iPhone (получить исходный код), чтобы получить ключи на стороне клиента.

  2. Как это (OAuth / basi c) поможет? Конечно, человек, создающий другое приложение, просто добавил бы OAuth / basi c auth, не так ли?

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

  3. Будет ли использовать Basi c Ключ Auth или OAuth работает, если они могут видеть мой код?

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

0 голосов
/ 13 июля 2020

Вы должны создать API с Basi c Auth или OAuth . Вы не можете полагаться на свой URL-адрес, потому что он может быть обнаружен в журналах. Посмотрите этот курс

...