Security веб проекта на .NET

q_q4138
Posts: 13
Joined: 07 Apr 2004 02:14

Security веб проекта на .NET

Post by q_q4138 »

Привет всем,

Делаю веб проект в VS, VB. По разным причинам сложно выносить connection strings в web.config, они остаются в code behind. Насколько я рискую в плане security? Мнения хакеров приветствуются :D .
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Re: Security веб проекта на .NET

Post by Gennadiy »

q_q4138 wrote:Привет всем,

Делаю веб проект в VS, VB. По разным причинам сложно выносить connection strings в web.config, они остаются в code behind. Насколько я рискую в плане security? Мнения хакеров приветствуются :D .

Абсолютно ничего не понятно. Connection string к чему? К базе данных?
Как ищется соответствие пользователя веба и базы данных? Какая модель web authontication используется? А какая web authorization?
В теории - внешние юзеры при правильной защите веб сервера добратся до code behind не могут. Ведь на клиент передается голый HTML (точнее HTTP headers тоже есть - вот тут могут быть дыры, но они с code behind не связаны обычно).
Aden
Уже с Приветом
Posts: 144
Joined: 05 Mar 2001 10:01

Post by Aden »

В общем случае, ConnectionString будет более "safe" как раз в "code behind", поскольку .vb файлы компилируются в DLL и не лежат в чистом виде на веб-сервере (непонятно только, Вы что, при каждом изменении парамeтров соединения с БД будете перекомпилировать проект?). А так, используйте CryptoAPI http://msdn.microsoft.com/library/defau ... portal.asp
Bobo
Уже с Приветом
Posts: 518
Joined: 04 Jun 2002 01:40
Location: CA, USA

Post by Bobo »

Aden wrote:В общем случае, ConnectionString будет более "safe" как раз в "code behind"


В обшем случае нет никакой разницы.
Поскольку ни *.dll ни *.config веб сервер не отдаст.
Если же хакер получил доступ к файлам, минуя веб сервер, то тоже нет никакой разницы, т.к. в обшем случае dll декомпилируется.
Шифруйте TripleDESом, если боитесь.
Или используйте dotfuscator какой-нибудь
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

Bobo wrote:
Aden wrote:В общем случае, ConnectionString будет более "safe" как раз в "code behind"


В обшем случае нет никакой разницы.
Поскольку ни *.dll ни *.config веб сервер не отдаст.
Если же хакер получил доступ к файлам, минуя веб сервер, то тоже нет никакой разницы, т.к. в обшем случае dll декомпилируется.
Шифруйте TripleDESом, если боитесь.
Или используйте dotfuscator какой-нибудь


Dllку компилируйте с "сильным именем". :mrgreen: Она будет надёжно заинкриптaна. Strong name compilation. И ни каких проблем. :lol:
Stick around!
Bobo
Уже с Приветом
Posts: 518
Joined: 04 Jun 2002 01:40
Location: CA, USA

Post by Bobo »

Stick wrote:Dllку компилируйте с "сильным именем". :mrgreen: Она будет надёжно заинкриптaна. Strong name compilation. И ни каких проблем. :lol:


Нет.
Или вы так шутите?
q_q4138
Posts: 13
Joined: 07 Apr 2004 02:14

Post by q_q4138 »

Спасибо.
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

Bobo wrote:Нет.
Или вы так шутите?

Нет.
Я не шучу. Это серьёзный раздел и я понимаю это. А strong name компиляция - обычное дело и очень эффективный метод предотвращения декомпиляции ваших исходников.
Stick around!
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Post by Falcon »

Stick wrote:
Bobo wrote:Нет.
Или вы так шутите?

Нет.
Я не шучу. Это серьёзный раздел и я понимаю это. А strong name компиляция - обычное дело и очень эффективный метод предотвращения декомпиляции ваших исходников.


Вы натурально бредите. 8O Strong name может дать только имитозащиту но не предотвратить декомпиляцию. За скромных $5 я вам декомпилирую любую strong name assembly. :mrgreen:
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Falcon wrote:...За скромных $5 я вам декомпилирую любую strong name assembly. :mrgreen:
Давайте, я вам декомпилирую за $4.95 :)
...а мы такой компанией, возьмем, да и припремся к Элис!
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

Да, ладно вам. Присылайте мне свои дллки - раскрою за так, за бесплатно. Пришлось покапаться в гуголе и найти как это делается. Хакеру хакерово. :mrgreen: Может кто знает как .NET assemblies теперь защищать?
Stick around!
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Примените какой-либо обфускатор. Я как-то, около месяця-двух назад, поднимал вопрос об выборе обфускатора, но никто ничего не порекомендовал. :pain1:
...а мы такой компанией, возьмем, да и припремся к Элис!
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

blanko27 wrote:Примените какой-либо обфускатор. Я как-то, около месяця-двух назад, поднимал вопрос об выборе обфускатора, но никто ничего не порекомендовал. :pain1:

Спасибо Вам за подсказку! Очень благодарен!
После недолгого шАпанья решил выкупить себе вот такой обфускатор:
[url=http://www.9rays.net/cgi-bin/components.cgi?act=1&cid=86]Spices.Obfuscator.Net [Console Only] Spices.Obfuscator.Net Console 62.95$
[/url] Недорого и мне нужен только консольный вариант.
Stick around!
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Stick wrote:
blanko27 wrote:Примените какой-либо обфускатор. Я как-то, около месяця-двух назад, поднимал вопрос об выборе обфускатора, но никто ничего не порекомендовал. :pain1:

Спасибо Вам за подсказку! Очень благодарен!
После недолгого шАпанья решил выкупить себе вот такой обфускатор:
[url=http://www.9rays.net/cgi-bin/components.cgi?act=1&cid=86]Spices.Obfuscator.Net [Console Only] Spices.Obfuscator.Net Console 62.95$
[/url] Недорого и мне нужен только консольный вариант.


Практически никакого проку от обфускаторов нет. Да и собственно - зачем вообще нужно прятать код - у вас особо секретные алгоритмы применяются? Тогда запатентуйте. А иначе в чем смысл? Да и баги внесенные могут появится, а морока с отложенным подписанием при наличие нескольких библиотек способна свести с ума при автоматизированной компиляции. Не надо это вам.
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

IA72 wrote:... баги внесенные могут появится ... Не надо это вам.
Вот и я в сомнении, хотя не против был бы получить какую-нибудь инфу о хороших коммерческих обфускаторах. Для конторы хотелось бы что-нибудь приличное прикупить.
...а мы такой компанией, возьмем, да и припремся к Элис!
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

IA72 wrote:Практически никакого проку от обфускаторов нет. Да и собственно - зачем вообще нужно прятать код - у вас особо секретные алгоритмы применяются? Не надо это вам.

Мине нада. :mrgreen: Секрет скажу: продаю я их, зти самые асэмбли. Сам делаю и сам продаю. Идут на расхват. Тока защитить бы их ищо не мешает. :lol:
Stick around!
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Stick wrote:
IA72 wrote:Практически никакого проку от обфускаторов нет. Да и собственно - зачем вообще нужно прятать код - у вас особо секретные алгоритмы применяются? Не надо это вам.

Мине нада. :mrgreen: Секрет скажу: продаю я их, зти самые асэмбли. Сам делаю и сам продаю. Идут на расхват. Тока защитить бы их ищо не мешает. :lol:


И каким образом обфускатор их защитит? Тем более что для библиотек это еще меньше имеет смысл, так как public & protected методы в этом случае просто нельзя переименовывать. А в переименовывании и создании фальшивых overload методов собственно главный смысл и есть. Шифрование строковых констант - не смешите мои тапочки. Не говоря уже о такой замечательной вещи, как сообщения об ошибках - вместо достаточно полезного стека вы получите бесполезный для исследования набор непонятно чего. Еще раз - это совершенно глупое занятие, если вдуматься. Ненужное и зачастую вредное. Как вы думаете, почему Microsoft свои библиотеки не шифрует? Ценность кода это не алгоритм вот этой конкретной процедуры, и не структура объектов, а продукт целиком. Исключения надо патентовать.
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

IA72 wrote: И каким образом обфускатор их защитит?
От умного - не защитит. Только умные, как правило не воруют по мелочам. От дурака - да защитит. Поэтому, я думаю, что для обфускаторов тоже есть ниша. Вон РемоутСофт не мелочится, $1000 их обфускатор стОит.
...а мы такой компанией, возьмем, да и припремся к Элис!
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

IA72 wrote:И каким образом обфускатор их защитит? Тем более что для библиотек это еще меньше имеет смысл, так как public & protected методы в этом случае просто нельзя переименовывать. А в переименовывании и создании фальшивых overload методов собственно главный смысл и есть. Шифрование строковых констант - не смешите мои тапочки. Не говоря уже о такой замечательной вещи, как сообщения об ошибках - вместо достаточно полезного стека вы получите бесполезный для исследования набор непонятно чего. Еще раз - это совершенно глупое занятие, если вдуматься. Ненужное и зачастую вредное. Как вы думаете, почему Microsoft свои библиотеки не шифрует? Ценность кода это не алгоритм вот этой конкретной процедуры, и не структура объектов, а продукт целиком. Исключения надо патентовать.

Что даст патентование алгоритмов? Куча денег и времени это дело убъёт. У меня нет каких-то уникальных алгоритмов чтоб патентовать. Всё уже придумано.
Зачем public & protected методы переименовывать? Что внутри у них - это да, это можно попереименовывать. Зачем сообщения об ошибках конечному пользователю из сборки показывать? Или я чего-то не понимаю? :pain1: Microsoft может себе позволить свои библиотеки не шифровать. Я нет.
Если говорить про продукт целиком, так у меня сборки привязываются к проекту разработчика хитрым алгоритмом. Если кто-то посторонний пытается прилипить сборку к своему проекту - у него не получается. Может этот алгоритм запатентовать? :lol: Только патентование "это совершенно глупое занятие", говоря Вашими словами.
Stick around!
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Stick wrote:Что даст патентование алгоритмов? Куча денег и времени это дело убъёт. У меня нет каких-то уникальных алгоритмов чтоб патентовать. Всё уже придумано.


Тогда вам нет необходимости запутывать код

Stick wrote:Зачем public & protected методы переименовывать? Что внутри у них - это да, это можно попереименовывать.


А что у них внутри? Вы понимаете, как обфускаторы работают?
С _кодом_ они ничего, кроме вставления фальшивых goto ничего не делают -
все запутывание исключительно на переименовании методов, что бы сложнее было читать. При этом я лично сталкивался со случаем, когда после обфускации код переставал работать - причем причину из сообщения было узнать нельзя.

Stick wrote:Зачем сообщения об ошибках конечному пользователю из сборки показывать? Или я чего-то не понимаю? :pain1:


? А вам для исправления багов, которые у пользователя случились они тоже не нужны? Ну-ну.

Stick wrote:Microsoft может себе позволить свои библиотеки не шифровать. Я нет.
Если говорить про продукт целиком, так у меня сборки привязываются к проекту разработчика хитрым алгоритмом. Если кто-то посторонний пытается прилипить сборку к своему проекту - у него не получается. Может этот алгоритм запатентовать? :lol:


Если он представляет собой какую-то ценность, почему бы и нет.
А если это использование StrongNameIdentityPermissionAttribute в купе с выдаваемой клиенту персональной proxy, подписанной вами же, или еще какой аналогичный "хитрый алгоритм" :), то не стоит.

Stick wrote:Только патентование "это совершенно глупое занятие", говоря Вашими словами.


Я про патентование такого не говорил - если вы так считаете, то это исключительно ваши проблемы.
Короче, я завязываю - убеждать вас вдохнуть и подумать а нужно ли это на самом деле и стоит ли тратить на это время, деньги и усилия я больше не буду - каждый Буратино сам себе враг - вперед, наступайте на грабли самостоятельно.
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

IA72 wrote:... Я про патентование такого не говорил - если вы так считаете, то это исключительно ваши проблемы.
А вот патентование, кстати, это тоже интересная область. Где-то слышал, что это даже не очень дорого.
...а мы такой компанией, возьмем, да и припремся к Элис!
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

Мне особенно понравилось про Буратино. Забавно... :mrgreen:
Stick around!
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Post by Falcon »

Stick wrote:Мне особенно понравилось про Буратино. Забавно... :mrgreen:


Мда... человек вам дело говорит, а вы смеетесь. Все обфускаторы предназначены для некомпетентных параноиков, никакой защиты они дать не могут. Даже pain in the ass не причиняют, так, мелкие неудобства только. И будьте уверены что если уж кто-то затеял декомпилировать вашу ассембли то он просто плюнет слюной на такую "защиту"
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

А по-моему топик в сторону куда-то от оригинального вопроса ушел. Человек спрашивал куда connection string засунуть что бы его не хакнули

Ответ: в web.config ему самое место. Сервер этот файл не отдаст веб клиету, поэтому нечего себе голову морочить обфускаторами если в них нет нужды.
Никакой разрухи нет. (с) Проф. Преображенский.

Return to “Вопросы и новости IT”