iPhone SDK: сохранение имени пользователя и пароля в коде - PullRequest
2 голосов
/ 24 мая 2010

В моем приложении пользователь может загружать файлы на FTP-сервер.Чтобы открыть соединение и написать на сервер, мне нужно использовать имя пользователя и пароль.Наличие имени пользователя и пароля для FTP в коде выглядит как проблема безопасности.

Может кто-нибудь подсказать, как мне безопасно сохранить это в своем коде и использовать его для подключения к серверу?много!

Ответы [ 3 ]

3 голосов
/ 24 мая 2010

Наличие имени пользователя FTP и пароля в код выглядит как проблема безопасности.

Это потому что: -)

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

Нет никакого способа сделать это - вы ищете здесь эквивалент безопасности вечного двигателя. Все, что вы делаете, будет защищено от неясности и будет подвергнуто обратному проектированию. Кроме того, когда вы встраиваете секреты в код, любой сбой будет катастрофическим, и не существует простого способа восстановления.

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

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

1 голос
/ 24 мая 2010

Как уже говорили другие, так как FTP является открытым текстом по сети, вы в растерянности.

Однако существуют безопасные способы хранения информации на устройстве, каким бы оно ни было. Этот механизм обычно называют цепочкой для ключей, и вы можете выполнить шаги, описанные здесь , чтобы сделать это. Вам также захочется прочитать Обзор безопасности . И GenericKeychain и CryptoExcercise примеры кода здесь являются хорошими ссылками.

1 голос
/ 24 мая 2010

Если это FTP, то вы отправляете учетные данные по сети в незашифрованном виде.Если вы собираетесь защитить эти учетные данные, вы уже потеряли их, потому что любой, кто интересуется ими, может легко перехватить пароль от беспроводной сети.Я постоянно настраиваю простую настройку только для такого типа перехвата сети с iPhone.

Если FTP - ваш единственный вариант, то вы должны признать, что эти учетные данные являются общедоступными, и либо сделать соединение анонимным,или строго ограничьте, что могут делать предоставленные вами учетные данные.

В частности, вы должны убедиться, что учетные данные (или анонимная учетная запись) могут только писать и не читать.Если у вас есть сервер FTP, который имеет хорошо известные учетные данные, которые могут читать и писать, то он будет быстро стать хозяином для копий программного обеспечения и порно.

1006 * Если вы можете использовать другой протокол (HTTPS, SFTP,и т.д.) тогда это хорошо, но на самом деле это вас не спасет.Если вы отправите свои учетные данные для входа вместе с программным обеспечением, и они имеют какое-либо значение, они будут подвергнуты обратному проектированию.Поэтому, хотя я рекомендую использовать HTTPS для загрузки файлов, вы все равно не можете полагаться на безопасность учетных данных, которые вы отправляете в своей программе.Вы все еще должны убедиться, что ваш веб-сервер терпим к злоумышленникам, посылающим ему случайные вещи.
...