У меня есть настольное приложение, напрямую подключающееся к SQL Server, я вижу много сообщений, в которых говорится, что вы не должны открывать SQL Server напрямую в Интернете, но ни в одном не говорится, почему. Немного предыстории:
Я заметил, что подключение к SQL Azure очень похоже на стандартный удаленный SQL Server (http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/#using-sql-server)
Я понимаю, что открытие любых портов - это унаследованная уязвимость, но это не может быть единственной причиной. Я, должно быть, что-то упускаю, но не знаю, что именно?
Какая реальная альтернатива, кроме развертывания нижней части моего приложения как веб-службы?
На то есть несколько причин, но наиболее важная из них заключается в том, что кто-то, кто не имеет опыта работы с SQL-серверами и сетевой безопасностью, скорее всего, сделает одну или несколько типичных ошибок.
Например, вы можете использовать для подключения учетную запись SQL «sa», которая является учетной записью системного администратора по умолчанию и полностью контролирует SQL-сервер.
Или вы можете использовать другую учетную запись SQL Server со слабым паролем, чтобы злоумышленник мог попытаться использовать грубую силу для повышения своих привилегий.
Или вы могли бы оставить включенным какой-то пользовательский документ, доступный только для чтения по умолчанию (для этого или любого другого приложения), который будет активно сканироваться злоумышленниками и сценариями использования, чтобы они могли извлекать данные из вашей базы данных.
Вот несколько хороших мер для защиты от самых простых удаленных атак: