Показать сообщение отдельно
  #13 (permalink)  
Старый 27.04.2018, 12:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от laimas
Чем опасно показывать структуру базы данных, хотя бы частично?
Код многих известных CMS (не берем Битрикс, он упакован) свободно доступен в сети. Естественно, что открытый код анализируется на уязвимости (это справедливо и к приложениям с открытым кодом) для дальнейшей их эксплуатации. Точно не помню, но вроде бы Джумлу взламывали "угадывая" префикс имен полей таблиц.

Вы владелец сайта, хост вам определил доступ к панели управления им - логин, пароль. Вы определяете пользователя FTP и БД, указывая логин и пароль. Именно по этому логину и паролю будет производится подключение к БД. Логин и пароль пользователя Федя, под которым он зарегистрировался SQL побоку. SQL также наплевать какие права вы определили для Феди, может к примеру только читать посты, или же удалять чужие.

Я атакующий, обычный пользователь, мне надо попотеть, чтобы в грамотно организованной безопасности пробить брешь. А тут такой подарок - мне разрешено на клиенте писать "SELECT ... FROM ...", не жизнь, а малина. Вы что думаете, что не определив мне права делать запрос к таблице Х обезопасили себя?

Я подставлю в запрос вывод представления БД, получу все что меня интересует, а пом уже нанесу удар. Если клиенту позволено делать все что ему вздумается, то о какой безопасности может идти речь?

Грамотно, это даже вывод SQL ошибок не делают, только в режиме отладки и кому эта отладка доступна. Если формы оперируют именами полей таблиц, то это только часть имени, другая часть известна только серверу. Любая информация по структурам таблиц, это пища для анализа атакуемому, и чем больше такой пищи, тем более обширна для него стратегия. А если еще код дырявый, то это вообще подарок.

Безопасность приложения, это долгий разговор, "спрятал от глаз структуру и все ОК" не есть защита. Ищите в сети и читайте, это очень обширный материал, ибо веб приложение, это клиент+сервер, и вопросы безопасности актуальны для обеих сторон.
Ответить с цитированием