|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
alexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня. Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 10:50 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123alexeyvg, - чистый MVC тоже классика, однако, в чистом виде....Я не спорю, тоже классика. Petro123- 3-х звенка без ORM на AppServer? Ну..нуЧто, 3-х (и более) звенки не существовало до появления ООП и ORM??? ORM - это просто некоторая деталь реализации. Petro123ЗЫ. мы про архитектуру. Я хочу сказать, что нету универсальных решений (3 забора - лучше)Бываю, бывают универсальные решения, во всех видах человеческой деятельности, называются шаблонами. Вот увеличение количества заборов - как раз такое универсальное решение. Я не говорю, что эти шаблоны надо всегда применять, но они есть, и их знание и иногда применение очень помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 10:54 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
um_nikhey_123, Удивляюсь почему iscrafm не дал сразу почитать теорию потому что в том чтиве ничего, кроме флейма, по теме нет. Люди, не понимающие зачем нужны трехзвенки, рассуждают о том, почему они с ними никогда не сталкивались. В чем здесь теория? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 11:04 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwareriscrafmпростой пример двойного барьера и почему это безопасней... ... Второй барьер - на твой телефон приходит sms с единоразовым паролем. И всё это имеет прямое и непосредственное отношение к трёхзвенке не понимаю восторга. А кто sms отправляет? СУБД или оператор на подхвате? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 11:05 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwareralexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня. Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял.По моему, такую модель безопасности можно поддерживать в очень многих СУБД. Можно, например, просто проверять внутри ХП права для переданного как параметр контекста. Можно делать защиту нативным для СУБД способом, хотя при этом теряются рад преимуществ использования АПП-сервера (типа, нельзя использовать пулл коннектов и прочее) То есть способы реализации есть, другое дело - какой будет уровень такой защиты и насколько просто будет его реализовать, насколько эффективно это будет работать. Тем не менее, уровень защиты всё равно будет выше - просто появится ещё один "забор". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 11:07 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwareralexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня. Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял. о да... Оракл. Только. "Странные мысли №2" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 11:08 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
alexeyvgПо моему, такую модель безопасности можно поддерживать в очень многих СУБД. Руками - да. Но это тот же самый код Васи Криворучкина вместо стандартной системы безопасности, только размещённый не на AS, а в DB. Разницы, в общем, никакой. alexeyvgМожно делать защиту нативным для СУБД способом, хотя при этом теряются рад преимуществ использования АПП-сервера (типа, нельзя использовать пулл коннектов и прочее) Вот именно тут Оракл на сегодня вроде как впереди. Его механизм proxy users позволяет совместить пул соединений с использованием механизмов безопасности СУБД, а заодно и решает проблему "прямого коннекта к СУБД" и "прослушанных паролей". Смысл этого механизма в следующем: создаётся пользователь MIDTIER, имеющий пароль и право на соединение с БД. Он не имеет никаких прав ни на какие объекты БД. Далее, создаются пользователи SASHA, PETYA и VASYA, каждый из которых имеет права на объекты БД в соответствии с бизнес-логикой и не имеет права на соединение с БД. И наконец, изюминка - пользователь MIDTIER грантует пользователям SASHA/PETYA/VASYA право работать в его сессии. В результате SASHA, зная свой пароль, просто не может соединиться с БД. Хакер Петя, открыв пароль MIDTIER, сможет соединиться с БД, но никаких прав там не получит. А приложение работает следующим образом: оно создаёт сессию для пользователя MIDTIER, после чего в нужный момент говорит Ораклу: привет, сейчас в этой сессии будет работать VASYA. И следующие операции пойдут с правами и ограничениями Васи. Петя, зная пароль MIDTIER и написав аналогичное промежуточное приложение, в принципе может попробовать соединиться и поработать под своими правами, но во-первых, так он всё равно не получит ничего нового, а во-вторых, никто не мешает ограничить коннекты MIDTIER-а, например, только ip-шником appserver-а. То есть, система получается довольно надёжная. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 11:19 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Информацию как правило сдают "свои" же, к примеру Wikileaks. Я даже думаю что никакая защита не поможет. Я к тому, что толку спорить, какая зщита лучше... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 12:50 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
ЯИнформацию как правило сдают "свои" же, к примеру Wikileaks. Я даже думаю что никакая защита не поможет. Я к тому, что толку спорить, какая зщита лучше... Если информацию достают через "своих", значит защита реализована достаточно хорошо. Программист не может перекрыть все пути, но не должен быть "слабым звеном". А по поводу других слабых звеньев пусть болит голова у тех, кто отвечает за те направления. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:03 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmum_nikhey_123, Удивляюсь почему iscrafm не дал сразу почитать теорию потому что в том чтиве ничего, кроме флейма, по теме нет. Люди, не понимающие зачем нужны трехзвенки, рассуждают о том, почему они с ними никогда не сталкивались. Ну молодец, ну ответил. Там сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах. авторВ чем здесь теория?А в том что осиля все буквы на том форуме можно уже сделать некоторые для себя выводы (она не являеться панацеей) и если уж без много-звенки совсем не вмоготу, то нужно очень точно знать как ее реализовать, а не следовать моде из учебников. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:20 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Недавно заинтересовала тема распределенных приложений, но немного под другим углом. Сейчас истерия (ну мне так кажется) по поводу разработки кроссплатформенных приложений. Решил один из своих небольших проектов Delphi переписать под Lazarus. Столкнулся с тем, что там еще "не допилили" генератор отчетов (LazReport) и портирования в желаемом виде достичь не удалось. Далее я почитал разный материал по разным ЯП и немного озадачился следующим: получается, что сейчас нет (ну опять же мне так показалось) инструментария, который бы позволял создавать приложения под все имеющиеся платформы. Т.е. изучение какого-то нового ЯП не решает проблему, а времени занимает много. Вот тут мне и подумалось, а что если приложение разделить на несколько независимых частей, тогда при портировании, возможно, не потребуется изучать какой-нибудь ЯП в том объеме, который необходим для написания полноценного приложения, и каждую из его частей можно разрабатывать при помощи различного инструментария. Например, возьмем учетную систему. Ее можно разделить на: БД, сервер отчетов, модуль предоставляющий компоненты доступа к данным, модуль бизнес-логики и интерфейс. В рамках одной ОС, каждую из составных можно будет менять независимо от других. Может быть полезным, когда, например, нужно изменить интерфейс (или добавить поддержку web-интерфейса), изменить механизм доступа к БД или сменить саму БД. При переносе на другую ОС с одной стороны все не так просто, но интерфейс может быть написан на какой-нибудь кросплатформенной библиотеке (другие модули тоже, если, например, писать на JAVA или под .NET), тогда все равно не нужно будет переписывать все приложение, плюс каждый модуль будет самостоятельным, соответственно лучше спроектированным (т.к. не должно быть зависимостей от других модулей), и портировать все модули по частям, по идее, должно быть легче, чем приложение в целом. Этот процесс может быть растянут во времени и дает больше свободы, т.к. можно выбирать между технологиями и специалистами. Интересно, есть ли у кого-то такой практический опыт? Какие "схемы" применялись? Плюсы и минусы? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:36 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
um_nikТам сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах. кто такие "профи форума" и какие примеры ожидались (ожидаются)? Насколько я помню примеров там было достаточно. Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:37 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
iscrafmum_nikТам сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах. кто такие "профи форума" и какие примеры ожидались (ожидаются)? Насколько я помню примеров там было достаточно. Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя. Ладно, тоже не хочу поднимать темы многолетней давности, отвечу лишь за себя - в свое время этот топик очень повлиял на решение делать много-звенку или нет(решили не делать, может что-то и потеряли не делая ее, не знаю).А тоже в свое время я начитался восторженных статей ее достоинствах. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:43 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
um_nikiscrafmпропущено... Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя. ... тоже в свое время я начитался восторженных статей ее достоинствах. Во времена того обсуждения это действительно было больше похоже на поиски истины. Но время восторженных статей давно прошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 13:51 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Gust2002, авторСейчас истерия - кроссплатформенность через веб-тонкий клиент (браузер) и электронное правительство ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 14:07 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Gust2002Интересно, есть ли у кого-то такой практический опыт? Какие "схемы" применялись? Плюсы и минусы? У меня есть опыт работы с отчасти подобной вещью. Что могу сказать: боюсь, Вы забыли учесть самый существенный момент: интерфейс между однородными модулями делается намного легче и надёжнее, чем между разнородными. То есть, скажем, если стучаться к СУБД из серверного модуля на C#, полученную выборку передавать в дельфовый клиент, где с ней работать как с датасетом, изменения передавать обратно и воплощать всё это в операции с разными СУБД - можно, но немногим легче, чем застрелиться, особенно если ещё добиваться вменяемой производительности. А теперь если вы вдруг захотите заменить серверный код на php или клиентский на веб - потребуется переписывать "почти всё". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 14:11 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwarerможно, но немногим легче, чем застрелиться, особенно если ещё добиваться вменяемой производительности. А теперь если вы вдруг захотите заменить серверный код на php или клиентский на веб - потребуется переписывать "почти всё". Я эту проблему осознаю. Намерений написать каждую из частей системы на разных ЯП нет. Есть мысль попробовать разбить приложение в рамках одного ЯП, а потом, при необходимости, думать как переносить (архитектура должна быть проще, по производительности есть сомнения). Собственно написал в надежде услышать о каких-то конкретных результатах в этом направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 15:42 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Gust2002Есть мысль попробовать разбить приложение в рамках одного ЯП, а потом, при необходимости, думать как переносить Дык переносить-то можно будет ровно в двух вариациях: либо оставив язык, либо сменив его. Меняя - получите вот это удовольствие в полном объёме. При этом, если не будете готовиться заранее, придётся очень много переписывать и в "переносимом", и в "непереносимом". Оставив - не получите никаких преимуществ от "особо обособленной модульности". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 15:49 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwarerМеняя - получите вот это удовольствие в полном объёме. В моем случае сервер может быть виндовый, а вот клиенты могут быть разными в рамках локальной сети, плюс иногда всплывают пожелания работать в off-line. Изучить новый язык тоже не так уж и просто... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 15:56 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Я думаю, что когда выбираешь, то в первую очередь надо думать головой и выбирать удобство пятизвенки в первую очередь, а не удобство или безопасность двухзвенки ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 16:10 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwarer, почему оракл впереди планеты всей? в ms sql с 2005 версии есть возможность менять контекст исполнения через EXECUTE AS... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 18:42 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
alneoв ms sql с 2005 версии есть возможность менять контекст исполнения через EXECUTE AS... Пожалуйста, расскажите поподробнее. Вполне возможно, мои знания устарели. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 19:16 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
hey_123 ты не много путаеш понятия если приложение реализовано как база данных (таблицы ) ---- приложение то это двух-звенка база данных (таблицы ) ---- что-то ------ приложение то это трех-звенка безопасней трех-звенка, потому что хакер или продвинутый пользователь в двух-звенке мог напрямую работать с таблицами. "что-то" - это может быть вебсервис, твоя служба или просто хранимые процедуры . У меня лично реализовано через хранимые процедуры (архитектуру я реализовал в 1998году), тогда еще не очень задавались вопросами трех/двох звенка. Причины на тот момент: 1. безопасность 2. скорость работы 3. скорость разработки и устранения ошибок 4. быстрота добавление функционала на данный момент я бы делал через через хранимие процедуры + промежуточная "служба", причина простая скрыть от конечно пользователя даже тип сервера баз данных, + можно реализовать какой-то дополнительный функционал, хотя этот вопрос нужно изучать... А так, это просто мысли вслух... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2011, 23:13 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
softwarerВот уж для этого стараться не надо :) Больше компонент, сложнее схема взаимодействия - следовательно, уже заведомо менее надёжна при прочих равных. Больше мест потенциальных дырок. ... Вопрос только в том, что в "ораклах" таких багов на несколько порядков меньше, чем у Васи Криворучкина. Поэтому и есть баланс: в RDBMS багов меньше, но ищут их тщательнее и проблем от найденных больше; у Васи багов полная тележка, но кто будет их толком искать? Что безопаснее - соответственно, вопрос неочевидный, в разных случаях по-разному ну скажем у нас трехзвенка обычно реализуется самым элементарным образом - просто вызов wcf сервиса иви вебсервиса который просто тупо транслирует вызов дальше. Т.е. если потенциальные дырки и есть, то только в самих стандартных компонентах. "Свои" баги тут я даже не знаю как посадить при всем желании :) softwarerАнекдот про Неуловимого Джо помните? Дырки в СУБД ежедневно в течение многих лет ищут сотни, а то и тысячи людей. Дырки в Васиной прикладухе будут искать один-два человека пару раз по несколько дней, вряд ли больше. Таким образом, если Вася соображает в безопасности, педантичен, аккуратен и не оставил очевидных дыр, всякие тонкие щели - которые в безопасности широко распространённого софта рано или поздно найдут и опишут - в случае его СуперКрутойАптечнойСистемыУрюпинска останутся девственны. Опять же, СУБД Вы можете бесплатно скачать и до посинения искать дыры у себя на компьютере, анализируя её со всех сторон, а откуда Вы добудете на исследование инсталляцию Васи? Это да. Правда вряд-ли аргумент "все равно никто искать не будет" произведет впечатление на руководство ;) Скажем наши системы пару раз оценивались peretration тестерами заказчиков. Те знают куда копать и могут много чего интересного вскрыть. softwarerСкажем, если типичная тупая трёхзвенка просто транслирует вызовы с AS в DB, то за счёт пула соединений код injection будет выполнен не с правами вызывающего пользователя (= минимальными), а с правами суперпользователя. Как следствие, трёхзвенка будет хуже. верно softwarerС другой стороны, Вася вполне может прикрутить к классу "вызыватель хранимки" в AS проверку строковых параметров, это делается один раз и достаточно надёжно накрывает все будущие модификации, в отличие от хранимок, где надо проверять каждый входной параметр (и где заведомо кто-то где-то забудет). а вот тут не думаю, что это есть достоинство трехзвенки как таковой, мне ничто не мешает делать любые проверки перед вызовом БД в самом клиенте (просто другом слое) softwarerПожалуйста, расскажите поподробнее. Вполне возможно, мои знания устарели. в sql server можно создать процедуру, которая будет выполняться в контексте другого пользователя. CREATE PROCEDURE [dbo].[CreateSP] WITH EXECUTE AS 'User1' внутри этой процедуры я могу скажем удалять создавать/обьекты. Теперь я могу дать права на эту процедуру кому угодно, и этот кто угодно сможет выполнить эту ХП, но за ее пределами он по-прежнему бесправен. У нас юзается такая возможность - в системе есть возможность определять пользовательские критерии выборки информации, т.е. пользователь может задать критерий "покажи все заявления в таком-то отделении в такое-то время". Для этого критерия создается хранимая процедура, внутри которой выполняется динамический sql. Определять критерии могут даже самые бесправные пользователи, но разумеется давать им права на создание процедур нельзя, поэтому и используется вызов ХП в контексте другого пользователя. Александр Третьяков"что-то" - это может быть вебсервис, твоя служба или просто хранимые процедуры. по-моему это ты путаешься :) ХП это никак не трехзвенка, 3 звена означают наличие отдельной системы (процесса) между приложением и базой ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2011, 01:54 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Александр Третьяковты не много путаеш понятия если приложение реализовано как база данных (таблицы ) ---- приложение то это двух-звенка база данных (таблицы ) ---- что-то ------ приложение то это трех-звенка база данных (таблицы) ---- BDE ---- приложение, то это трёхзвенка. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2011, 10:08 |
|
|
start [/forum/topic.php?fid=33&msg=37166383&tid=1547650]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 275ms |
0 / 0 |