Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Подскажите можно ли для БД выполнить настройки что б принимать запросы могла только в качестве имен хранимых процедур. Что б всякие запросы типа SELECT, INERT, DROP не возможно было передать ей на выполнение, а только можно было передавать имя хранимой процедуры?
23 сен 09, 19:07    [7699732]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
Отберите права и пусть хоть обпередаются.

Сообщение было отредактировано: 23 сен 09, 19:08
23 сен 09, 19:08    [7699736]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Спасибо, но как отобрать. Простите, но здесь я дундук
23 сен 09, 19:11    [7699748]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
serverokAsservelat
Спасибо, но как отобрать. Простите, но здесь я дундук
А как давали? Так теперь и отбирайте.

Сообщение было отредактировано: 23 сен 09, 19:14
23 сен 09, 19:14    [7699756]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Да какие права?!
Создал в папке App_Data БД и юзаю её.
А о правах - я так далек от этого.
23 сен 09, 19:36    [7699838]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Дело в том, что пугали меня, типа инъекции запросами - страшная вещь.
Но пока сижу на своем компе и, понятное дело, накиких инъекция никто не внедряет.

Но как обстоят дела при реальной работе сайта?
Куда надо смотреть и за чем следить при поддержке сайта с БД?
23 сен 09, 19:38    [7699853]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Рекомендую задать эти вопросы тем, кто Вас пугал
23 сен 09, 19:53    [7699912]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Tigritto
Member

Откуда: от туда
Сообщений: 43
serverokAsservelat,

В инет только выгляни самостоятельно - уже ломятся и в глаз норовят :).

сайт понятно можно видеть из инета, а вот бд и разные другие вещи нельзя. Делается с помощью спецсредств: файрвол, брендмауэр, межсетевой экран и т.п. Есть даже типовые схемы как организоввывать.
Если хостинг нормальный там уже все сделано. Если самому - вообще неплохо бы сисдминскую литературу почитать на такую темут и в инете поискать и на форумах. Тема довольно большая и вариантов много будет в зависимости от способов аутентификации и используемых программных средств, возможностей и т.п. Еще важно обновления всегда ставить. Бекап не забываем, а то вскроют и напишут "вернем за деньги вот наш счет на багамах. спешите".
А про инъекции - очень даже реально. От них никакой файрвол не защитит, только сам.
23 сен 09, 19:59    [7699933]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Tigritto, я тебя не знаю лично, но уже уважаю!
Сколько полезной инфы и по существу даешь. Спасибо.
Вот только еще вопросик.

От инъекций спасение програмно? То-есть свой личный код проверок, блокировок, запретов, преобразований и т.п. Так?!
23 сен 09, 20:26    [7700019]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
iljy
Member

Откуда:
Сообщений: 8711
serverokAsservelat,

от injection спасаться рекомендуют используя не формирование запроса напрямую из пользовательского ввода, а используя запросы с параметрами и выполняя их через sp_executesql. Очень полезная процедура.
23 сен 09, 20:49    [7700076]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Tigritto
Member

Откуда: от туда
Сообщений: 43
serverokAsservelat,

Комплименты для девок побереги... Ррррр... :) Не зачто пока.

Про инъекции типа того, только в разных случаях по разному. Для бд одно, для хтмэля другое и т.д. Здесь неплохо во первых спецсредсвом обзавестись для анализа на инъекции (а лучше несколькими), но самое то - как Ленин говорил: учиться, учиться, учиться - читайте литру и в инете статьи и на форумы. Тему в посте не раскроешь - вечная борьба: мы учимся их ловить, а они учатся убегать.
23 сен 09, 20:54    [7700088]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Tigritto
Member

Откуда: от туда
Сообщений: 43
iljy
serverokAsservelat,

от injection спасаться рекомендуют используя не формирование запроса напрямую из пользовательского ввода, а используя запросы с параметрами и выполняя их через sp_executesql. Очень полезная процедура.


Надеюсь имеется ввиду, что динамический SQL надо так запускать.
Только динамический SQL - те еще тормоза.
Если из клиента - надо использовать средства языка клиента для запросов. Например в C# - в пространсве System.Data.SqlClient полно средств где не надо указывать всякие там "CommandType
=Text".
23 сен 09, 21:05    [7700116]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Да, я знаю, что напрямую формировать запросы - утопия.
Я вообще всю работу веду через хранимые процедуры. Соответственно, при их вызове им передаю параметры входные и (если есть) извлекаю выходные.

Соль вопроса в чем: как бы сказать БД что б она отвечала только на запрос выполнения хранимой процедуры, а на обычные "текстовые" запросы внимания не обращала, или что еще лучше где-то у себя помечала каждый такой запрос что б я потом смог просмотреть факт наличия попыток доступа к моей БД не мной.
23 сен 09, 21:31    [7700188]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Tigritto
Только динамический SQL - те еще тормоза.

Зависит от.
23 сен 09, 21:36    [7700209]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
serverokAsservelat
где-то у себя помечала каждый такой запрос что б я потом смог просмотреть факт наличия попыток доступа к моей БД не мной.

профайлер.
23 сен 09, 21:37    [7700212]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
serverokAsservelat
Соль вопроса в чем: как бы сказать БД что б она отвечала только на запрос выполнения хранимой процедуры, а на обычные "текстовые" запросы внимания не обращала, или что еще лучше где-то у себя помечала каждый такой запрос что б я потом смог просмотреть факт наличия попыток доступа к моей БД не мной.
Читать первый же ответ в теме, пока не дойдет.
23 сен 09, 21:37    [7700213]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Серж Алексович, ну что Вы горячитесь?! Я понял.
Только ответ этот вроде того, мол: "Что б автомобиль ехал надо бензин залить". Но я пока ничего не то что обензине, я о топливе ничего не знаю. Как я могу поехать?!

Ваш ответ я принял во внимание и подтягиваю инфу теперь в этом направлении.
23 сен 09, 21:57    [7700284]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
GRANT и DENY.
23 сен 09, 22:00    [7700306]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
iljy
Member

Откуда:
Сообщений: 8711
serverokAsservelat,

смотря что вы понимаете под формированием запроса напрямую и чего вы боитесь. Вызов запроса с параметрами через sp_executesql ничем по затратности и быстродействию не отличается от процедуры, по безопасноси в общем-то тоже. А вот формирование текста запроса на клиенте даже с использованием "специальных средств" - бомба замедленного действия, хотя медленность исполнения в данном случае тоже сильно преувеличена. Если же хотите непременно закрыть выполнение всего, кроме пользовательских процедур - отбирайте права на объекты и выдавайте их только на процедуры (открыть БОЛ и курить GRANT и REVOKE до полного просветления), а процедуры делайте EXECUTE AS OWNER.
Доступ к SQL должен быть естественно закрыт из инета, только с web-сервера.
23 сен 09, 22:03    [7700323]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Tigritto
Member

Откуда: от туда
Сообщений: 43
iljy
serverokAsservelat,

...Вызов запроса с параметрами через sp_executesql ничем по затратности и быстродействию не отличается от процедуры, по безопасноси в общем-то тоже...


При условии что запросов мало и они простые. Если много то затраты на компиляцию станут заметны, а сложность запросов еще добавит. Хотя автору темы пока это врядли грозит...

Есть еще один недостаток - если есть код который собирается динамически и содержит много подстановок, разбираться через месяц потом что это было не очень приятное занятие
23 сен 09, 22:23    [7700402]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
serverokAsservelat
Member

Откуда:
Сообщений: 567
Может, я все преувеличиваю, но лучше переб*деть, чем недоб*деть. Правильно?!

Появились вопросы вот откуда. На сайте есть пока 3 места, где принимается пользовательский ввод: ввод имейла и имени, поиск по сайту и загрузка контента (текст + поле для загрузки файла).

И, вот эти места надо защитить. Но от чего защищать? Знаю пока про атаки внедрением. Вот и спросил.
23 сен 09, 22:42    [7700473]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
iljy
Member

Откуда:
Сообщений: 8711
Tigritto
iljy
serverokAsservelat,

...Вызов запроса с параметрами через sp_executesql ничем по затратности и быстродействию не отличается от процедуры, по безопасноси в общем-то тоже...


При условии что запросов мало и они простые. Если много то затраты на компиляцию станут заметны, а сложность запросов еще добавит. Хотя автору темы пока это врядли грозит...

А вы про кеш планов слышали? С параметрами?

Tigritto
Есть еще один недостаток - если есть код который собирается динамически и содержит много подстановок, разбираться через месяц потом что это было не очень приятное занятие

вот я как раз НЕ предлагаю собирать код динамически, а вызывать статические запросы с параметрами.
23 сен 09, 22:54    [7700507]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
iljy
Member

Откуда:
Сообщений: 8711
serverokAsservelat
Может, я все преувеличиваю, но лучше переб*деть, чем недоб*деть. Правильно?!

Появились вопросы вот откуда. На сайте есть пока 3 места, где принимается пользовательский ввод: ввод имейла и имени, поиск по сайту и загрузка контента (текст + поле для загрузки файла).

И, вот эти места надо защитить. Но от чего защищать? Знаю пока про атаки внедрением. Вот и спросил.


Еще раз. От атак внедрением sp_executesql вполне спасает, так что только ради этого городить процедуры на каждый чих не нужно.

Заморачиваться с процедурами есть смысл на случай взлома движка сайта, когда атакующий получает возможность выполнять любые запросы от лица web-сервера. Тогда да - ограничение пользователю, под которым работает сервер, прав на все, кроме определенного набора процедур может иметь смысл. Но разрешение ему выполнять так же и селекты не слишком травмирует базу. А если на сайте есть админка в виде отдельного конекта к базе с полным доступом - тут уже увы, получение конекта администратора даст все права на сервере, и ничего вы с этим не сделаете.
23 сен 09, 22:59    [7700521]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
Влом регистрироваться
Guest
serverokAsservelat,

дайте на таблицы только права на SELECT, а остальные (INSERT,UPDATE,DELETE) заберите.
24 сен 09, 09:05    [7701074]     Ответить | Цитировать Сообщить модератору
 Re: Защита БД от атак  [new]
var4a
Member

Откуда:
Сообщений: 91
Влом регистрироваться
serverokAsservelat,

дайте на таблицы только права на SELECT, а остальные (INSERT,UPDATE,DELETE) заберите.


Вы считаете это решит проблему?
Вы в любом случае теряете инфу(раскрываете информацию, если хотите)

Насколько я понимаю автору в веб формах, где происходит передача инфы(ввод е-мэйла, логина, etc) необходимо делать проверку на вводимые значения, на "--", ";" например.
24 сен 09, 09:30    [7701149]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить