Мне было интересно, может ли кто-нибудь сказать мне, есть ли какие-либо потенциальные нарушения безопасности, которые могут возникнуть при подключении к базе данных sql, которая не находится на localhost, то есть через IP-адрес?
Есть 2 проблемы безопасности, которые похожи на любое сетевое приложение.
Любые данные, содержащиеся в вашей базе данных, могут быть скомпрометированы, а также потенциально даже система, если в MySQL была обнаружена уязвимость безопасности этого типа.
Как правило, лучше не оставлять базу данных доступной на общедоступном IP-адресе. Если невозможно разделиться в частной сети, рекомендуется как минимум предотвратить доступ с помощью брандмауэра в локальной системе.
Если вы фильтруете доступ, правильно управляете доступом и регулярно обновляете, вы сможете минимизировать риск.
Я не был уверен, имели ли вы в виду: A - Может ли ваш компьютер быть атакованным при подключении к удаленной базе данных SQL B - Это хорошая практика безопасности, когда база данных SQL прослушивает IP-адрес
В случае A, если вы подключаетесь к базе данных SQL с уязвимым клиентом, то да, вас могут атаковать.
В случае B существует множество потенциальных нарушений безопасности, которые могут произойти через подключение к удаленной базе данных SQL.
Да, нарушения действительно происходят из-за того, что соединение с вашей базой данных не защищено. Это скорее вопрос безопасности сети, чем вопрос безопасности приложения. Таким образом, этот ответ полностью зависит от топографии вашей сети.
Если какой-либо сегмент вашей сети может быть доступен злоумышленнику, вы должны защитить себя с помощью криптографии. Например, у вас есть злоумышленник, который взломал машину в вашей сети, тогда они могут провести ARP-спуфинг атака на "Sniff" или даже на устройства MITM в коммутируемой сети. Это можно использовать для просмотра всех данных, которые поступают в вашу базу данных и из нее, или для изменения ответа базы данных на конкретный запрос (например, логин!). Если сетевое соединение с вашей базой данных представляет собой одиночное витое соединение rj45 с вашим httpd-сервером, все находящееся внутри запертого шкафа, вам не нужно беспокоиться о том, что хакер его обнюхает. Но если ваш httpd находится в сети Wi-Fi, а затем подключается к базе данных в Китае, вы можете подумать о шифровании.
Вы должны подключиться к своей базе данных MySQL, используя Встроенная в MySQL возможность SSL. Это обеспечивает надежную защиту всех передаваемых данных. Вы должны создать самозаверяющие сертификаты x509 и жестко их закодировать. Это бесплатно, и для этого вам не нужен центр сертификации, такой как Verisign. Если есть исключение сертификата, значит, есть MITM, и, таким образом, это не дает вам раскрыть пароль.
Другой вариант - это VPN, и это лучше подходит, если у вас есть несколько демонов, которым требуются безопасные соединения точка-точка.