скрыть пароль в строке - PullRequest
       16

скрыть пароль в строке

3 голосов
/ 09 сентября 2009

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

Меня это не сильно беспокоит, но пароль - это просто строка для запуска нового объекта ftp.

FtpClient ftp = new FtpClient("www.markonsolutions.com", "user", "password");

Как лучше всего сохранить этот пароль от посторонних глаз?

Ответы [ 4 ]

10 голосов
/ 09 сентября 2009

FTP поддерживает только обычную текстовую аутентификацию - если вы хотите скрыть пароль от злоумышленников, вы должны использовать FTPS (FTP через SSL) .

UPDATE

Не заботьтесь о том, чтобы в качестве первого шага скрыть и скрыть пароль в исходном коде - ваше приложение должно будет расшифровать его и отправить по сети в виде простого текста. Каждый может просто запустить WireShark или любой другой анализатор пакетов и вернуть пароль в виде обычного текста. Сначала убедитесь, что вы не отправляете пароль в виде простого текста по сети, а затем подумайте о том, чтобы запутать его в своем коде.

UPDATE

Запутывание пароля в вашем коде не дает никакой защиты, пока вы отправляете его в виде простого текста, но вы можете сделать это. Простое шифрование строки добавляет один уровень косвенности. Без запутывания я должен найти пароль в вашем приложении, и это всего за несколько минут с Reflector , с запутыванием я должен найти ключ, зашифрованный пароль и метод шифрования. Это, вероятно, все еще займет всего несколько минут.

Использование обфускатора для предотвращения декомпиляции вашего приложения (в читаемый код) может остановить меня на несколько часов, пока я не найду соответствующий вызов в функции системной библиотеки (но я бы не стал пытаться, а только прочитал пароль из провод;).

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

2 голосов
/ 09 сентября 2009

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

1 голос
/ 09 сентября 2009

См. этот пост о том, как зашифровать и расшифровать строку, в данном случае ваш пароль.

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

0 голосов
/ 09 сентября 2009

Создайте параметры конфигурации паролей и URL-адресов подключения в защищенном файле. Я использую INI-файлы, и они помещаются в каталог, защищенный веб-сервером, так что браузер не может ни открыть, ни увидеть файл / каталог.

...