#sql #encryption #passwords
#sql #шифрование #пароли
Вопрос:
Это теоретический вопрос, я новичок в SQL, и у меня действительно нет большого опыта в этом.
Во-первых, предположим, вам нужно создать программу для потребителей, которой требуется определенная информация из базы данных, которой нет на локальном компьютере, скажем, где-нибудь через Интернет. безопасно ли подключаться напрямую к базе данных и выполнять некоторые запросы?
Я полагаю, больше всего беспокоит то, что вы предоставляете доступ к БД пользователю и паролю, которые могут быть перехвачены, находясь в программе и все такое, оставляя ее открытой для вредоносных запросов. Можно ли это исправить с помощью хорошего шифрования между приложением и базой данных?
Инстинктивно я полагаю, что лучший способ справиться с этим — создать серверное приложение, которое выполняет запросы, проверяет информацию, обрабатывает конфиденциальную информацию и управляет подключением приложения.
Это правильно?
Комментарии:
1. Этот вопрос, похоже, не по теме, поскольку он касается безопасности и не содержит вопроса программирования.
Ответ №1:
«Инстинктивно я полагаю, что лучший способ справиться с этим — создать серверное приложение, которое выполняет запросы, проверяет информацию, обрабатывает конфиденциальную информацию и отслеживает подключение приложения».
Вы правы. Четкая передача запросов в сообщениях по сети вообще не рекомендуется, если вам нужен минимум безопасности.
Вы только что упомянули решение, тогда основная трудность заключается в «проверке информации», как вы сказали. Иногда это может быть довольно сложно, в зависимости от того, какой уровень безопасности вы хотите.
Возможно, вам сначала следует ознакомиться с SQL-инъекцией:http://en.wikipedia.org/wiki/SQL_injection
Ответ №2:
Да, вам следует установить некоторую защиту.
Используйте TLS, если вы хотите защитить вход. Если возможно, также разверните проверку подлинности клиента для установления соединения TLS, пароли часто не очень безопасны. Вы, конечно, можете также использовать аутентификацию клиента и проверку пароля (через TLS).
Используйте серверное приложение, если вы не хотите, чтобы ваши клиенты имели полный контроль. Обратите внимание, что клиентское приложение полностью контролирует клиента, поэтому было бы легко загрузить или удалить всю базу данных, если вы не защитите ее на стороне сервера.