powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / 2-х звенка vs. 3-х звенка и безопасность
25 сообщений из 360, страница 2 из 15
2-х звенка vs. 3-х звенка и безопасность
    #37165104
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня.
Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165118
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123alexeyvg,
- чистый MVC тоже классика, однако, в чистом виде....Я не спорю, тоже классика.

Petro123- 3-х звенка без ORM на AppServer? Ну..нуЧто, 3-х (и более) звенки не существовало до появления ООП и ORM???
ORM - это просто некоторая деталь реализации.

Petro123ЗЫ. мы про архитектуру.
Я хочу сказать, что нету универсальных решений (3 забора - лучше)Бываю, бывают универсальные решения, во всех видах человеческой деятельности, называются шаблонами.

Вот увеличение количества заборов - как раз такое универсальное решение.

Я не говорю, что эти шаблоны надо всегда применять, но они есть, и их знание и иногда применение очень помогает.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165140
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
um_nikhey_123,
Удивляюсь почему iscrafm не дал сразу почитать
теорию
потому что в том чтиве ничего, кроме флейма, по теме нет. Люди, не понимающие зачем нужны трехзвенки, рассуждают о том, почему они с ними никогда не сталкивались. В чем здесь теория?
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165146
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwareriscrafmпростой пример двойного барьера и почему это безопасней... ... Второй барьер - на твой телефон приходит sms с единоразовым паролем.
И всё это имеет прямое и непосредственное отношение к трёхзвенке

не понимаю восторга. А кто sms отправляет? СУБД или оператор на подхвате?
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165155
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwareralexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня.
Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял.По моему, такую модель безопасности можно поддерживать в очень многих СУБД.

Можно, например, просто проверять внутри ХП права для переданного как параметр контекста.

Можно делать защиту нативным для СУБД способом, хотя при этом теряются рад преимуществ использования АПП-сервера (типа, нельзя использовать пулл коннектов и прочее)

То есть способы реализации есть, другое дело - какой будет уровень такой защиты и насколько просто будет его реализовать, насколько эффективно это будет работать. Тем не менее, уровень защиты всё равно будет выше - просто появится ещё один "забор".
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165156
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwareralexeyvgПри этом систему разрабатывают разные разработчики - DB-developer делает защищённый интерфейс к БД через ХП, а App-developer делает защищённый интерфейс к приложению от презентационного уровня.
Проблема в том, что на сегодняшний день из СУБД вроде только Оракл поддерживает такую модель безопасности. Да и то надо посмотреть внимательнее... маркетинговые обещания есть, но своими руками я этот раздел не ковырял.
о да... Оракл. Только. "Странные мысли №2"
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165182
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgПо моему, такую модель безопасности можно поддерживать в очень многих СУБД.
Руками - да. Но это тот же самый код Васи Криворучкина вместо стандартной системы безопасности, только размещённый не на AS, а в DB. Разницы, в общем, никакой.

alexeyvgМожно делать защиту нативным для СУБД способом, хотя при этом теряются рад преимуществ использования АПП-сервера (типа, нельзя использовать пулл коннектов и прочее)
Вот именно тут Оракл на сегодня вроде как впереди. Его механизм proxy users позволяет совместить пул соединений с использованием механизмов безопасности СУБД, а заодно и решает проблему "прямого коннекта к СУБД" и "прослушанных паролей".

Смысл этого механизма в следующем: создаётся пользователь MIDTIER, имеющий пароль и право на соединение с БД. Он не имеет никаких прав ни на какие объекты БД. Далее, создаются пользователи SASHA, PETYA и VASYA, каждый из которых имеет права на объекты БД в соответствии с бизнес-логикой и не имеет права на соединение с БД. И наконец, изюминка - пользователь MIDTIER грантует пользователям SASHA/PETYA/VASYA право работать в его сессии.

В результате SASHA, зная свой пароль, просто не может соединиться с БД. Хакер Петя, открыв пароль MIDTIER, сможет соединиться с БД, но никаких прав там не получит. А приложение работает следующим образом: оно создаёт сессию для пользователя MIDTIER, после чего в нужный момент говорит Ораклу: привет, сейчас в этой сессии будет работать VASYA. И следующие операции пойдут с правами и ограничениями Васи. Петя, зная пароль MIDTIER и написав аналогичное промежуточное приложение, в принципе может попробовать соединиться и поработать под своими правами, но во-первых, так он всё равно не получит ничего нового, а во-вторых, никто не мешает ограничить коннекты MIDTIER-а, например, только ip-шником appserver-а. То есть, система получается довольно надёжная.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165473
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Информацию как правило сдают "свои" же, к примеру Wikileaks. Я даже думаю что никакая защита не поможет. Я к тому, что толку спорить, какая зщита лучше...
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165510
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯИнформацию как правило сдают "свои" же, к примеру Wikileaks. Я даже думаю что никакая защита не поможет. Я к тому, что толку спорить, какая зщита лучше...
Если информацию достают через "своих", значит защита реализована достаточно хорошо. Программист не может перекрыть все пути, но не должен быть "слабым звеном". А по поводу других слабых звеньев пусть болит голова у тех, кто отвечает за те направления.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165552
um_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmum_nikhey_123,
Удивляюсь почему iscrafm не дал сразу почитать
теорию
потому что в том чтиве ничего, кроме флейма, по теме нет. Люди, не понимающие зачем нужны трехзвенки, рассуждают о том, почему они с ними никогда не сталкивались.
Ну молодец, ну ответил. Там сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах.
авторВ чем здесь теория?А в том что осиля все буквы на том форуме можно уже сделать некоторые для себя выводы (она не являеться панацеей) и если уж без много-звенки совсем не вмоготу, то нужно очень точно знать как ее реализовать, а не следовать моде из учебников.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165600
Gust2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно заинтересовала тема распределенных приложений, но немного под другим углом. Сейчас истерия (ну мне так кажется) по поводу разработки кроссплатформенных приложений. Решил один из своих небольших проектов Delphi переписать под Lazarus. Столкнулся с тем, что там еще "не допилили" генератор отчетов (LazReport) и портирования в желаемом виде достичь не удалось. Далее я почитал разный материал по разным ЯП и немного озадачился следующим: получается, что сейчас нет (ну опять же мне так показалось) инструментария, который бы позволял создавать приложения под все имеющиеся платформы. Т.е. изучение какого-то нового ЯП не решает проблему, а времени занимает много. Вот тут мне и подумалось, а что если приложение разделить на несколько независимых частей, тогда при портировании, возможно, не потребуется изучать какой-нибудь ЯП в том объеме, который необходим для написания полноценного приложения, и каждую из его частей можно разрабатывать при помощи различного инструментария. Например, возьмем учетную систему. Ее можно разделить на: БД, сервер отчетов, модуль предоставляющий компоненты доступа к данным, модуль бизнес-логики и интерфейс. В рамках одной ОС, каждую из составных можно будет менять независимо от других. Может быть полезным, когда, например, нужно изменить интерфейс (или добавить поддержку web-интерфейса), изменить механизм доступа к БД или сменить саму БД. При переносе на другую ОС с одной стороны все не так просто, но интерфейс может быть написан на какой-нибудь кросплатформенной библиотеке (другие модули тоже, если, например, писать на JAVA или под .NET), тогда все равно не нужно будет переписывать все приложение, плюс каждый модуль будет самостоятельным, соответственно лучше спроектированным (т.к. не должно быть зависимостей от других модулей), и портировать все модули по частям, по идее, должно быть легче, чем приложение в целом. Этот процесс может быть растянут во времени и дает больше свободы, т.к. можно выбирать между технологиями и специалистами.
Интересно, есть ли у кого-то такой практический опыт? Какие "схемы" применялись? Плюсы и минусы?
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165604
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
um_nikТам сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах.

кто такие "профи форума" и какие примеры ожидались (ожидаются)? Насколько я помню примеров там было достаточно. Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165629
um_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmum_nikТам сорок страниц ни о чем лишь потому, что никто так и не привел убедительных примеров, которые профи форума не размажут в пух и прах.

кто такие "профи форума" и какие примеры ожидались (ожидаются)? Насколько я помню примеров там было достаточно. Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя.
Ладно, тоже не хочу поднимать темы многолетней давности, отвечу лишь за себя - в свое время этот топик очень повлиял на решение делать много-звенку или нет(решили не делать, может что-то и потеряли не делая ее, не знаю).А тоже в свое время я начитался восторженных статей ее достоинствах.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165656
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
um_nikiscrafmпропущено...

Хотя, в принципе, зачем поднимать темы многолетней давности. Реальность говорит сама за себя.
... тоже в свое время я начитался восторженных статей ее достоинствах.
Во времена того обсуждения это действительно было больше похоже на поиски истины. Но время восторженных статей давно прошло.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165704
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gust2002,
авторСейчас истерия
- кроссплатформенность через веб-тонкий клиент (браузер) и электронное правительство ;)
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165716
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gust2002Интересно, есть ли у кого-то такой практический опыт? Какие "схемы" применялись? Плюсы и минусы?
У меня есть опыт работы с отчасти подобной вещью. Что могу сказать: боюсь, Вы забыли учесть самый существенный момент: интерфейс между однородными модулями делается намного легче и надёжнее, чем между разнородными. То есть, скажем, если стучаться к СУБД из серверного модуля на C#, полученную выборку передавать в дельфовый клиент, где с ней работать как с датасетом, изменения передавать обратно и воплощать всё это в операции с разными СУБД - можно, но немногим легче, чем застрелиться, особенно если ещё добиваться вменяемой производительности. А теперь если вы вдруг захотите заменить серверный код на php или клиентский на веб - потребуется переписывать "почти всё".
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165979
Gust2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerможно, но немногим легче, чем застрелиться, особенно если ещё добиваться вменяемой производительности. А теперь если вы вдруг захотите заменить серверный код на php или клиентский на веб - потребуется переписывать "почти всё".
Я эту проблему осознаю. Намерений написать каждую из частей системы на разных ЯП нет. Есть мысль попробовать разбить приложение в рамках одного ЯП, а потом, при необходимости, думать как переносить (архитектура должна быть проще, по производительности есть сомнения). Собственно написал в надежде услышать о каких-то конкретных результатах в этом направлении.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37165997
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gust2002Есть мысль попробовать разбить приложение в рамках одного ЯП, а потом, при необходимости, думать как переносить
Дык переносить-то можно будет ровно в двух вариациях: либо оставив язык, либо сменив его. Меняя - получите вот это удовольствие в полном объёме. При этом, если не будете готовиться заранее, придётся очень много переписывать и в "переносимом", и в "непереносимом". Оставив - не получите никаких преимуществ от "особо обособленной модульности".
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166012
Gust2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerМеняя - получите вот это удовольствие в полном объёме.
В моем случае сервер может быть виндовый, а вот клиенты могут быть разными в рамках локальной сети, плюс иногда всплывают пожелания работать в off-line. Изучить новый язык тоже не так уж и просто...
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166041
Я думаю, что когда выбираешь, то в первую очередь надо думать головой и выбирать удобство пятизвенки в первую очередь, а не удобство или безопасность двухзвенки
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166383
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
почему оракл впереди планеты всей?
в ms sql с 2005 версии есть возможность менять контекст исполнения через EXECUTE AS...
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166445
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alneoв ms sql с 2005 версии есть возможность менять контекст исполнения через EXECUTE AS...
Пожалуйста, расскажите поподробнее. Вполне возможно, мои знания устарели.
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166655
Александр Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hey_123
ты не много путаеш понятия
если приложение реализовано как
база данных (таблицы ) ---- приложение то это двух-звенка
база данных (таблицы ) ---- что-то ------ приложение то это трех-звенка

безопасней трех-звенка, потому что хакер или продвинутый пользователь в двух-звенке мог напрямую работать с таблицами.

"что-то" - это может быть вебсервис, твоя служба или просто хранимые процедуры .
У меня лично реализовано через хранимые процедуры (архитектуру я реализовал в 1998году), тогда еще не очень задавались вопросами трех/двох звенка. Причины на тот момент:
1. безопасность
2. скорость работы
3. скорость разработки и устранения ошибок
4. быстрота добавление функционала

на данный момент я бы делал через через хранимие процедуры + промежуточная "служба", причина простая скрыть от конечно пользователя даже тип сервера баз данных, + можно реализовать какой-то дополнительный функционал, хотя этот вопрос нужно изучать... А так, это просто мысли вслух...
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166731
hey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerВот уж для этого стараться не надо :) Больше компонент, сложнее схема взаимодействия - следовательно, уже заведомо менее надёжна при прочих равных. Больше мест потенциальных дырок.
...
Вопрос только в том, что в "ораклах" таких багов на несколько порядков меньше, чем у Васи Криворучкина. Поэтому и есть баланс: в RDBMS багов меньше, но ищут их тщательнее и проблем от найденных больше; у Васи багов полная тележка, но кто будет их толком искать? Что безопаснее - соответственно, вопрос неочевидный, в разных случаях по-разному

ну скажем у нас трехзвенка обычно реализуется самым элементарным образом - просто вызов wcf сервиса иви вебсервиса который просто тупо транслирует вызов дальше. Т.е. если потенциальные дырки и есть, то только в самих стандартных компонентах. "Свои" баги тут я даже не знаю как посадить при всем желании :)

softwarerАнекдот про Неуловимого Джо помните? Дырки в СУБД ежедневно в течение многих лет ищут сотни, а то и тысячи людей. Дырки в Васиной прикладухе будут искать один-два человека пару раз по несколько дней, вряд ли больше. Таким образом, если Вася соображает в безопасности, педантичен, аккуратен и не оставил очевидных дыр, всякие тонкие щели - которые в безопасности широко распространённого софта рано или поздно найдут и опишут - в случае его СуперКрутойАптечнойСистемыУрюпинска останутся девственны. Опять же, СУБД Вы можете бесплатно скачать и до посинения искать дыры у себя на компьютере, анализируя её со всех сторон, а откуда Вы добудете на исследование инсталляцию Васи?

Это да. Правда вряд-ли аргумент "все равно никто искать не будет" произведет впечатление на руководство ;) Скажем наши системы пару раз оценивались peretration тестерами заказчиков. Те знают куда копать и могут много чего интересного вскрыть.

softwarerСкажем, если типичная тупая трёхзвенка просто транслирует вызовы с AS в DB, то за счёт пула соединений код injection будет выполнен не с правами вызывающего пользователя (= минимальными), а с правами суперпользователя. Как следствие, трёхзвенка будет хуже.

верно
softwarerС другой стороны, Вася вполне может прикрутить к классу "вызыватель хранимки" в AS проверку строковых параметров, это делается один раз и достаточно надёжно накрывает все будущие модификации, в отличие от хранимок, где надо проверять каждый входной параметр (и где заведомо кто-то где-то забудет).

а вот тут не думаю, что это есть достоинство трехзвенки как таковой, мне ничто не мешает делать любые проверки перед вызовом БД в самом клиенте (просто другом слое)
softwarerПожалуйста, расскажите поподробнее. Вполне возможно, мои знания устарели.

в sql server можно создать процедуру, которая будет выполняться в контексте другого пользователя.

CREATE PROCEDURE [dbo].[CreateSP] WITH EXECUTE AS 'User1'

внутри этой процедуры я могу скажем удалять создавать/обьекты. Теперь я могу дать права на эту процедуру кому угодно, и этот кто угодно сможет выполнить эту ХП, но за ее пределами он по-прежнему бесправен.
У нас юзается такая возможность - в системе есть возможность определять пользовательские критерии выборки информации, т.е. пользователь может задать критерий "покажи все заявления в таком-то отделении в такое-то время". Для этого критерия создается хранимая процедура, внутри которой выполняется динамический sql. Определять критерии могут даже самые бесправные пользователи, но разумеется давать им права на создание процедур нельзя, поэтому и используется вызов ХП в контексте другого пользователя.
Александр Третьяков"что-то" - это может быть вебсервис, твоя служба или просто хранимые процедуры.

по-моему это ты путаешься :) ХП это никак не трехзвенка, 3 звена означают наличие отдельной системы (процесса) между приложением и базой
...
Рейтинг: 0 / 0
2-х звенка vs. 3-х звенка и безопасность
    #37166961
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Третьяковты не много путаеш понятия
если приложение реализовано как
база данных (таблицы ) ---- приложение то это двух-звенка
база данных (таблицы ) ---- что-то ------ приложение то это трех-звенка
база данных (таблицы) ---- BDE ---- приложение, то это трёхзвенка.
...
Рейтинг: 0 / 0
25 сообщений из 360, страница 2 из 15
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / 2-х звенка vs. 3-х звенка и безопасность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]