Полезность оператора SQL Server «с шифрованием»
-
09-06-2019 - |
Вопрос
Недавно мы с другом говорили о защите кода хранимой процедуры в базе данных SQL-сервера.
Насколько я помню, я почти уверен, что «с шифрованием» невероятно легко взломать во всех версиях SQL Server, однако он сказал, что в SQL 2005 оно было значительно улучшено.В результате я не рассматривал всерьез это как вариант безопасности ни в одной системе, над которой мне когда-либо приходилось работать.
Итак, в каком сценарии можно использовать «с шифрованием» и когда его следует избегать любой ценой?
Решение
Его можно использовать, чтобы скрыть ваш код от случайных наблюдателей, но, как вы говорите:это легко обойти.
По-другому и быть не может, поскольку для его выполнения серверу необходимо расшифровать код.По сути, это DRM, и он терпит неудачу по той же причине, что и все остальные DRM — вы не можете одновременно скрыть данные и разрешить к ним доступ.
Другие советы
@Блоргберд
Хороший ответ, документация MSDN по «С ШИФРОВАНИЕМ», похоже, согласна с вашей точкой зрения, теперь называя ее «запутанной», а не зашифрованной.
Однако я встречал нескольких разработчиков, которые совершенно не знали об этом.Надеюсь, этот вопрос/ответ проинформирует и других.
Да, его легко сломать.На прошлой неделе у меня была ситуация, когда мне пришлось расшифровать несколько процедур, которые бывший разработчик зашифровал для моего клиента.После его расшифровки, которая потребовала умеренных усилий, я бы не стал полагаться на это как на какие-либо средства защиты интеллектуальной собственности, паролей и идентификаторов пользователей.Ничего действительно.