Безопасность веб-приложений ASP.NET на хостинге VDS - PullRequest
0 голосов
/ 17 января 2009

Мы разрабатываем веб-приложение asp.net в wcsf. Веб-приложение будет развернуто на общем хостинге Windows Server 2003 VDS . Веб-сайт будет использоваться для b2b, ежемесячной платы за обслуживание и транзакций по кредитным картам, используемых в веб-приложении, поэтому он должен быть защищенным. Я хочу обдумать, что нужно сделать перед развертыванием, и мне нужен ответ на несколько вопросов:

1) Как я могу защитить свой сайт и мой код от копирования. Достаточно ли подписи кода? Что я должен сделать для защиты отражателя? Достаточно обфускации?

2) А как насчет Windows Server 2003 VDS хостинг за и против?

3) MS SQL Server 2005 Express подходит для такого использования в бизнесе? Ограничение mssql express (4 ГБ памяти и 1 ГБ оперативной памяти) вызывают узкие места на веб-сайте?

4) Могу ли я без проблем перенести базу данных из экспресс-выпуска в выпуск рабочей группы mssql 2005 в будущем?

Ответы [ 2 ]

1 голос
/ 17 января 2009

эрхан -

Ваша основная задача безопасности не в том, чтобы защитить ваш исходный код, , а в том, чтобы защитить данные ваших клиентов. Для этого вы должны убедиться, что A) ваше общение безопасно (SSL) б) ваш код обеспечивает соответствующую безопасность (не подвергается атакам с использованием SQL-инъекций) и в) ваша база данных защищена.

Для (A) - безопасности связи - вам необходимо получить SSL-сертификат от кого-то вроде Thawte (это тот, кого мы используем, и они мне нравятся). Когда вы устанавливаете Cert на свой сервер, вы хотите убедиться, что веб-сайт принимает только безопасные (SSL) соединения - по крайней мере для всех страниц с конфиденциальными данными. Например, все формы с данными кредитной карты должны быть отправлены через SSL.

Для (B) - безопасность кода - это достойно целой книги ! Вы должны , а не , например, создавать вызовы SQL, просто добавляя данные форм / запросов, собранные с веб-страницы (это оставляет вас открытым для SQL-инъекций атак). Все Аргументы SQL должны быть параметризованы. и т. д. и т. д. Никто не может объяснить безопасность в SO сообщении - у вас есть лот для изучения.

Для (C) - безопасность SQL Server - это тоже сложная тема, но есть несколько ключевых моментов. Исходя из вашего описания, я предполагаю, что SQL Server работает на том же сервере, что и ваше веб-приложение. Это означает, что вы НЕ хотите, чтобы он принимал ЛЮБЫХ подключений из сети. Не поддавайтесь искушению оставить это открытым, чтобы вы могли легко получить к нему доступ из SQL Management Studio на рабочем столе ... это просто ужасная, глупая практика безопасности. Вы можете получить к нему доступ через удаленный рабочий стол после входа на удаленный сервер. Кроме того, отключите учетную запись 'sa' - просто сделайте это прямо сейчас. Люди, которые находят вас через порт 1433 (если вы не отключаете весь доступ к сети), будут в течение многих лет отбрасывать предположения о паролях с использованием грубой силы против учетной записи sa каждую секунду и т. Д. Мы получаем около 17 000 в день за пределами веб-сайта базы данных, которую мы поддерживаем для нескольких клиентов. Здесь есть чему поучиться, но если вы сделаете эти два шага, вы достаточно хорошо охвачены. Однако, чтобы быть уверенным, я рекомендую также запустить инструмент анализа поверхности безопасности MS и, при необходимости, следовать его рекомендациям, чтобы уменьшить видимость вашего SQL Server.

Что касается хостинга виртуальных машин, то должно быть в порядке. Тем не менее, выделенный хостинг стоит всего около $ 199 в месяц по MaximumASP (который я использую, рекомендую и считаю одним из лучших в бизнесе!). Я бы порекомендовал вам рассмотреть возможность использования собственного выделенного сервера, чтобы вы могли легко масштабировать свой бизнес, если он окажется успешным.

Что касается вашей базы данных, SQL Server Express будет работать для этого, и, да, вы можете перейти на Workgroup Edition в будущем. Ограничения базы данных не станут узким местом для вашего веб-сайта, если вы не достигнете этих ограничений. Вам нужно выяснить, вероятно ли это. При этом, действительно, не рекомендую пытаться запустить профессиональный веб-сайт на бесплатной версии базы данных MS - особенно на той, которая содержит финансовые данные. При любом успехе вы, , вероятно, столкнетесь с этими пределами. Многие веб-хостинговые компании (и MaximumASP в частности) позволят вам добавить профессиональную версию SQL Server к цене вашего сервера за минимальную цену (например, 25 долларов в месяц или что-то подобное).

Наконец, вы, кажется, немного запутались в отношении веб-приложений и приложений Windows. В веб-приложении ваши пользователи не будут иметь доступа к вашему исходному коду / DLL (IIS блокирует доступ к различным файлам, включая файлы dll и .config). Они не загружают и не устанавливают приложение, поэтому вам не нужно подписывать свой код, и вам не нужно запутывать. «Защита отражателя» даже не имеет смысла для меня в этом контексте.

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

Удачи!

1 голос
/ 17 января 2009
  1. Обфускации будет достаточно. Подписание кода не обеспечивает никакой защиты от посторонних глаз. Также наиболее респектабельные хостеры не заинтересованы в вашей интеллектуальной собственности и данных. В конце дня они занимаются хостингом.

  2. Я работаю в хостинговой компании, и у нас быстро растет число клиентов, размещенных на нашей платформе виртуализации. Одно из преимуществ, как для клиента, так и для нас самих, заключается в том, что если вам требуется больше ЦП или памяти, мы можем добавить их практически сразу, потому что это всего лишь параметр конфигурации на ВМ. В конечном итоге все зависит от того, как ваш поставщик создал свою виртуальную среду. Вам действительно нужно собрать больше информации о возможностях и ограничениях их среды, о том, сколько серверов на узел они обычно используют и т. Д., И решить, подходит ли вам это.

  3. SQL 2005 Express будет работать так же хорошо, как и полноценный SQL 2005. Ограничения в функциональности (например, отсутствие olap, что-то вроде этого) и, как вы правильно указали, максимальный объем памяти, который он может использовать, и макс размер БД. Однако производительность снизится, если вы превысите максимальный объем доступной памяти.

  4. Базы данных SQL 2005 Express могут быть скопированы и восстановлены в любом продукте SQL 2005/2008 без проблем.

Не зная объема трафика, который будет попадать в ваше приложение, было бы трудно предсказать, является ли виртуальный сервер лучшим выбором для среды. То же самое относится и к SQL 2005 Express. Если приложение интенсивно использует базу данных, вы можете столкнуться с повышенным давлением памяти - чем больше памяти у SQL-сервера, тем больше он может кешировать. Я думаю, что вам нужно самостоятельно спланировать мощность и решить для себя, каково оптимальное решение на данный момент, а затем и в дальнейшем.

...