#sql #xml #vb.net #user-input
#sql #xml #vb.net #пользовательский ввод
Вопрос:
У меня есть проект, запущенный в vb.net . В настоящее время это очень маленький проект, поэтому я использовал сериализацию XML в качестве основного способа хранения информации. Т.е. Создание XML-файла в папке .exe. и сохранение / чтение оттуда.
Проблема: поскольку проект небольшой, у меня нет настройки базы данных SQL, и я хотел бы сохранить ее такой. Но я хочу создать пользователя / пароль для доступа к программе.
Что я пробовал: я пробовал использовать сериализацию XML, но скрывал XML-файл. Как только я скрою его, я не смогу получить доступ к файлу (заявив, что у меня нет разрешений).
Какой хороший способ использовать ту же утилиту без использования SQL и не отдавать безопасность?
Комментарии:
1. если Exe-файл будет установлен
Program Files
в обычном режиме, у вашего приложения, скорее всего, не будет разрешения на чтение / запись там. Это тоUsersAppData
, для чего нужно. Похоже, это будет работать в IDE, потому что AppPath — это место, где вы храните свои проекты VS, напримерMyDocuments
. Поскольку вы выбрали XML, материал будет доступен для чтения. Вы можете зашифровать имена / пароли или использовать двоичную сериализацию (или и то, и другое)2. Пользователь, скорее всего, сможет узнать ваш пароль.
3. Верно. На самом деле мне не нужна слишком большая безопасность, но я хотел посмотреть, что считается лучшим вариантом без SQL.
4. Тогда зачем это скрывать? Как и предложил @Plutonix, просто поместите туда файл.
5. то, где вы храните файлы данных, имеет мало общего с безопасностью. «скрывать» файлы от пользователя в его собственной системе проблематично: что произойдет, если они захотят переместить свои данные на новый диск / систему? Защита информации для входа — это нечто совершенно другое, и наличие базы данных не всегда устраняет это.
Ответ №1:
Скрывать файл бессмысленно. Вы должны просто хэшировать пароли, а затем сохранять данные так же, как вы делаете для любых других данных. Это именно то, что вы бы сделали, если бы вы тоже использовали базу данных. Когда пользователь регистрируется, вы хэшируете пароль, который он предоставляет, и сохраняете результат. После этого любой пользователь может просматривать данные, не нарушая безопасность, поскольку он не может получить исходное значение из хэша. Когда пользователь входит в систему, вы хэшируете пароль, который он предоставляет, и сравниваете его со значением в базе данных, и, если они совпадают, пользователь аутентифицируется.
Вам следует немного почитать о хешировании в целом, а также рассмотреть возможность добавления соли для дополнительной безопасности, хотя в данном случае это может оказаться нецелесообразным.