|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro1231. a) давай код с данной проблемой. Которая поставит БД раком. А также версию данной БД. Могу свой Оракл на сайте открыть для тестов. б) Дальше то, что не сгущай краски о том, что один коннект повесит всю СУБД (какую именно?). Учитывая то, что 2-х звенка пишется в _локальной_ сети. а) На . И это не проблема, это возможность, которую можно использовать в обход ПО. б) Я не сгущаю краски, а пишу реальные вещи. Один коннект ничего вешать не будет, речь о том, что в руках злоумышленника (а такой обязательно найдется на предприятии из 10 тыс душ) открытая оперативная БД для всего домена - геморрой на заднее место. Даже элементарный чайник может написать батник, который в цикле дергает БД и что-то возвращает, тем самым просаживая перформанс и отклик сервера баз данных. Вообщем, если дырка есть (а она есть), туда обязательно кто-то насрет. Кто этого не понимает, пусть дальше пишет двухзвенки, я не против. Petro123не люблю слова "любых". Это твои проблемы, что ты там любишь. Petro123Все китайцы тоже на одно лицо, пока не займёшься конкретным проектом. Не понял, о чем ты. Но, наверное, о чем-то умном. Petro123Не шарик вкорячивается в ХП, а Шарик - делает запросы в СУБД. Шарик не делает запросы в СУБД, он вызывает серверную объектную модель (несколько видов объектной модели есть, включая серверную и клиентскую). А сама модель уже обращается в БД. Так вот расскажи мне, как в случае двухзвенки с логикой в хп ты будешь обращаться к ферме шарепоинта? Я пока сбегаю за попкорном. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:00 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
LSVНу тут можно придумать ряд мер, чтобы пользователь не знал реальный логин-пароль. Это не есть проблема. Триггер on_logon может всех отфутболить ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:00 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
LSVПользователь может зайти на SQL сервер в обход программы, например через Management Studio.Ну тут можно придумать ряд мер, чтобы пользователь не знал реальный логин-пароль. Это не есть проблема. Это проблема. Через любой дизассемблер (родной WinDbg, как вариант) я могу снять конечную строку соединения в момент физического соединения с СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:02 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 13:42 [14956527] >... Которая поставит БД раком ... Я не большой специалист по базам данных, поэтому прошу сильно не пинать. Рассмотрим ситуацию (гипотетическую) - винчестер, 32 ГБ, таблица база данных - 18 ГБ. Строим выборкой копию таблицы в серверный курсор, а затем в нем сортируем. Серверный курсор, это виртуальное понятие, или реальное, требующее дисковых ресурсов? Что будет с системой при недостатке оных? Откажется выполнять и откатится к исходному состоянию? Ну так повторю в цикле. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:08 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУа) На . И это не проблема, это возможность, которую можно использовать в обход ПО. расшифруй где проблема? Если ты написал ХП без управлениями транзакциями внутри, то: - a) где злой код? - б) ты сам написал код внутри ХП без возможности отката при любой ошибке (нет rollback) - в) в 3-х звенке можно написать так-же ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:13 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУДаже элементарный чайник может написать батник, который в цикле дергает БД банальную дос-атаку мы не рассматриваем. Ддосить можно всё - от сайтов до родителей)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:15 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУродной WinDbg, как вариант win авторизация через AD, как вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:18 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ВМоисеев, серверный курсор ничего нигде не строит. Он подкачивает (довыдаёт на клиента) записи по мере запроса на каждый DataSet.Next; Поэтому, в цикле на клиенте. ты никогда не прогнёшь им БД. И про админа не забываем с его логами и тревожными звонками о хакерах в локалке. Каждый занимается своим делом - СУБД, программист, админ. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:24 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУДаже элементарный чайник может написать батник, который в цикле дергает БД банальную дос-атаку мы не рассматриваем. Ддосить можно всё - от сайтов до родителей)) Извини, дос сайта - это пустяки, по сравнению с оперативной базой, содержащая важнейшие бизнес данные, с которой работает не только твоё кривое двухзвенное ПО . Petro123МСУродной WinDbg, как вариант win авторизация через AD, как вариант Какой же это вариант, при аутентификации AD еще проще снять строку соединения, чтобы соединиться с СУБД. Petro123МСУа) На . И это не проблема, это возможность, которую можно использовать в обход ПО. расшифруй где проблема? Говори русским языком, я тебя не понимаю. Что расшифровать, строку соединения? За 5 минут я отладчиком через бряки отдизассемблирую код и сниму реальную строку соединения (тип string). Ты об этом? Petro123Если ты написал ХП без управлениями транзакциями внутри, то: - a) где злой код? - б) ты сам написал код внутри ХП без возможности отката при любой ошибке (нет rollback) - в) в 3-х звенке можно написать так-же а) Злой код не внутри, а снаружи. б) Ты читаешь каким местом то, что я пишу? Какая хранимая процедура? Я тебе говорю о внешний запросах, которыми может оперировать пользователь, который подсоединился к СУБД. в) Каким местом? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:42 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 14:24 [14956797] >серверный курсор ничего нигде не строит. Извините дилетанта, а как же тогда понимать это : Это происходит потому, что полный результирующий набор хранится в серверном курсоре, а в SQL Server передаются лишь инструкции, выполняющие системные хранимые процедуры sp_cursor. С уважением, Владимир ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:51 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУ, Ну вот. Тут и спора нету. Ты говоришь - _важнейшие данные_. Если данные настолько важны, то делают N-звенки и даже часовых у входа. Если эти данные вроде НСИ для всего предприятия или планирование, то и 2-а звена пойдут. Главное, что делить данные по Важности обязательно надо. И это делает заказчик, а не ты. Т.е. Линейка решений, а не линия партии от MS. 2. Конечно, где надо вин-аутентификация, а где не надо - обычная а) чем BEGIN TRAN снаружи (клиентский) грозит? Процедуру в слое API нужно писать атомарную и неделимую. в) в сервисном слое в 3-х звенке тоже есть BEGIN TRAN. Да, пользователь его не напишет, но тогда возврат к вопросу о том - чем он грозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:00 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ВМоисеевРассмотрим ситуацию (гипотетическую) - винчестер, 32 ГБ, таблица база данных - 18 ГБ. гипотетически - урежем всё ещё в 2 раза и спросим 3-х звенку, как она в этом поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:07 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>МСУ, сегодня, 14:42 [14956918] >... в) Каким местом? ... Хочу сделать одно предложение. Так получается, что вопрос 2-у против 3-х звенки время от времени возникает, и на него нужно давать ответ, но ответ не литературный ( а-ля сам такой), а инженерный, технический. Вопрос возникает ещё и по безопасности - сейчас в локальную сеть наловчились запускать IP-телефонию, и с точки зрения админа по безопасности, LAN теперь есть высокоскоростная WAN, со всеми вытекающими - пакеты локальной сети могут быть перехвачены извне. Видимо и локальный трафик скоро треба шифровать. Давайте уважать друг друга, не надо упрекать коллегу в незнании, или в том, что он не так строит системы. Давайте рассматривать плюсы-минусы альтернативных подходов. Беда не в том, что не знаешь, а в том, что не хочешь знать. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:11 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123ВМоисеевРассмотрим ситуацию (гипотетическую) - винчестер, 32 ГБ, таблица база данных - 18 ГБ. гипотетически - урежем всё ещё в 2 раза и спросим 3-х звенку, как она в этом поможет? наверное имелось ввиду то, что в трехзвенке клиент не знает что такое БД ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:15 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Если данные настолько важны, то делают N-звенки и даже часовых у входа. Видимо, защищают данные и распределяют к ним доступ. Petro123Если эти данные вроде НСИ для всего предприятия или планирование, то и 2-а звена пойдут. Не вижу логики. Если деньги тебе так важны, храни их на чердаке, а не в за тремя стенами в банке. Petro123Главное, что делить данные по Важности обязательно надо. И это делает заказчик, а не ты. Делить тебе ничего не надо, предоставь заказчику надежную распределенную систему. А что хранить там будут, тебя не касается. Petro123Т.е. Линейка решений, а не линия партии от MS. Убил своей нелинейной логикой наповал... Комментировать нечего. Petro1232. Конечно, где надо вин-аутентификация, а где не надо - обычная Как это относится к обсуждаемому вопросу? Не вижу разницы, с помощью какого метода конечный пользователь соединится с БД. Вся проблема в том, что у него есть эта возможность. А это очень плохо. Petro123а) чем BEGIN TRAN снаружи (клиентский) грозит? Процедуру в слое API нужно писать атомарную и неделимую. в) в сервисном слое в 3-х звенке тоже есть BEGIN TRAN. Да, пользователь его не напишет, но тогда возврат к вопросу о том - чем он грозит. а) Ты не в курсе, "чем грозит" открытая транзакция? Ну сходи в школу, там расскажут. Сама процедура ничего не знает о её внешних потребителей, да и не должна знать. А тут приходит левый пользователь и начинает творить страшные вещи с этой хранимой процедурой, оборачивая её в транзакции, играясь с её параметрами и т.д. Ты считаешь это нормой? Чем дальше спрятана БД от сторонних глаз, тем выше надежность. Или ты будешь с этим спорить? б) То, что есть в сервисном слое - спрятано от пользователя. Есть только конечные методы, ака interface. Пользователь не сможет ничего сделать, кроме как вызвать этот метод. Он не может выполнить что-то своё, какой-то свой SQL запрос или инъекцию. Только метод. А в случае двухзвенки, у пользователя 100% возможности SQL, которым он может оперировать прямо в боевой базе на продакшене. Разница есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:15 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafm, зато знает как ложить 3 звена) .......... системы проектируются под плановую нагрузку. Дос-атака превышает плановую в сотни и тысячи раз. Это форс-мажор в локальной сети и контролируется админскими мерами. Так же как появление левого IP с помощью виртуальной машины у хакера Васи. короче, аргументов кроме сумасшедшего ДОС-хакера - нету. Нафиг тему подняли. ....пятница)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:17 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 15:07 [14957104] >гипотетически - урежем ... Сервер приложений контролирует функциональное содержимое пакета запроса и у конечного пользователя нет инструмента построить запрос на построение серверного курсора. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:17 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ВМоисеевДавайте уважать друг друга, не надо упрекать коллегу в незнании, или в том, что он не так строит системы. Давайте рассматривать плюсы-минусы альтернативных подходов. Беда не в том, что не знаешь, а в том, что не хочешь знать. Вова, не насилуй мне мозг, я больше всего терпеть не могу вот эти детские сопли по поводу уважения, упреков и прочих ми-ми-ми. Есть тема, есть участники, есть дискуссия. Есть что сказать - пуляй, обжуём и подумаем. Нет ничего по теме - сиди, вникай. Ничего личного. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:18 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
вверху одна лирика МСУа) А тут приходит левый пользователь и начинает творить страшные вещи с этой хранимой процедурой, оборачивая её в транзакции, играясь с её параметрами и т.д. Ты считаешь это нормой? Чем дальше спрятана БД от сторонних глаз, тем выше надежность. Или ты будешь с этим спорить? ===== - что страшного в параметре дата? - что страшного в begin tran? б) То, что есть в сервисном слое - спрятано от пользователя. Есть только конечные методы, ака interface. Пользователь не сможет ничего сделать, кроме как вызвать этот метод. Он не может выполнить что-то своё, какой-то свой SQL запрос или инъекцию. Только метод. А в случае двухзвенки, у пользователя 100% возможности SQL, которым он может оперировать прямо в боевой базе на продакшене. Разница есть? === тебе дать логин от моей? Страшно подумать что ты там наделаешь без прав от меня. Т.е. ХП в СУБД с грантами - это API или твой сервисный слой. а в общем случае я с тобой согласен - чем дальше ключи от квартиры тем лучше) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:25 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
>МСУ, сегодня, 15:18 [14957182] >Вова, не насилуй мне мозг... Владимир Николаевич с вашего позволения, хотя ... нам не о чем говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:26 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУ1. Пользователь может зайти на SQL сервер в обход программы, например через Management Studio. Открыть свои доступные ресурсы и заблокировать - открыть транзакцию, начать изменять ресурс, не закоммитить транзакцию. И уйти покурить на часок. Как тебе такая ситуация? Я, кстати, вспоминаю славную середину 90-х, когда у нас не было никаких трехзвенок, и Management Studio не было... да и MS SQL еще был в состоянии "Майкрософт рассматривает возможность лицензирования ядра СУБД у Sybase". В моем ненаглядном банке был тот самый Sybase ASE и его ублюдочная isql, и еще более ужасная DB2/400. Так вот, был ряд операций, которые не были реализованы в тогдашнем зачаточном GUI полукупленной, полусамописной учетной системы. Опытный матерый пользователь всегда имел консольку, в которой он правил данные как раз SQL-запросами :) Ничего, работало. Бывало, что запарывали какие-то данные. Тогда тревожным кабанчиком прыгаешь в ИТ-управление, и админы по-быстренькому восстанавливали утраченное :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:26 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123что страшного в параметре дата? Ничего. Petro123что страшного в begin tran? http://www.sql.ru/articles/mssql/01072301causesofsqltransactionlogfillingup.shtml Читай пункт 2: При наличии в журнале незавершённых транзакций: журнал транзакций может быть усечен только до самой старой незавершённой транзакции. Есть несколько возможных причин появления незавершённых транзакций, большинство из которых относятся к ошибкам прикладного программного обеспечения. Транзакция будет препятствовать усечению и других более коротких транзакций, которые исполняются в то же самое время. Пока пользователь соответствующим образом не отреагирует, приложение не сможет исполнить COMMIT, а усечение журнала не будет возможным. Ну и далее по тексту. Petro123тебе дать логин от моей? Страшно подумать что ты там наделаешь без прав от меня Читай выше, надоело повторяться. Petro123Т.е. ХП в СУБД с грантами - это API или твой сервисный слой. Гранты грантами, но у пользователя есть свобода действий в виде SQL, а это очень плохо и вредно. Имея прямой доступ к БД появляется уникальный шанс исследовать хранилище в целях поиска узких мест, чтобы рано или поздно подломить БД. Или ты уверен, что пишешь код, который 100% безопасен и который нельзя сломать? Я сомневаюсь в этом. Сервер приложений как-раз таки минимизирует подобные риски. Самое страшное, что можно себе представить, - это получить полный доступ ко всему хранилищу. Так вот в двухзвенке ты уже делаешь замечательный подарок атакующему - прямое соединения с оперативной БД во всём домене. Счастье ли? Или будешь дальше спорить о том, что ты пишешь 100% валидный безопасный код и учитываешь все варианты исхода событий? Даже не смешно. Petro123а в общем случае я с тобой согласен - чем дальше ключи от квартиры тем лучше) О чем и речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:36 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ДжекНепотрошительОпытный матерый пользователь всегда имел консольку, в которой он правил данные как раз SQL-запросами :) Это еще нормально, а как тебе открытая dbf на шаре, доступ к которой есть у всех пользователей? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:39 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
http://www.sql.ru/articles/mssql/01072301causesofsqltransactionlogfillingup.shtml Читай пункт 2: При наличии в журнале незавершённых транзакций: журнал транзакций может быть усечен только до самой старой ошибка 1105 админу возникает как в 3-х звенке/, так и 2-х звенке при неправильно написанном коде. Решение1: Настроить alert на ошибку невозможности выделить место в базе под текущую операцию Решение2: Контролировать админом появление безумных хакеров в локалке предприятия. Пишущих под своим логином цикл Код: sql 1. 2.
авторГранты грантами, но у пользователя есть свобода действий в виде SQL тогда у 3-х звенки есть свобода в HQL ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:56 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУА в случае двухзвенки, у пользователя 100% возможности SQL, которым он может оперировать прямо в боевой базе на продакшене. Разница есть? Этой воэможности его можно 100% лишить (что и делается) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:00 |
|
|
start [/forum/topic.php?fid=33&msg=38424484&tid=1547650]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 246ms |
0 / 0 |