Безопасность веб-приложений ASP.NET на хостинге VDS
Мы разрабатываем веб-приложение asp.net в wcsf. Веб-приложение будет развернуто на виртуальном хостинге VDS под управлением Windows Server 2003. Веб-сайт будет использоваться для b2b, ежемесячной платы за обслуживание и транзакций по кредитным картам, используемых в веб-приложении, поэтому он должен быть защищенным. Я хочу обдумать, что нужно сделать перед развертыванием, и мне нужен ответ на несколько вопросов:
1) Как я могу защитить свой сайт от копирования и мой код. Достаточно ли подписи кода? Что я должен сделать для защиты отражателя? Обфускации достаточно?
2) А как насчет плюсов и минусов хостинга Windows Server 2003 VDS?
3) MS SQL Server 2005 Express подходит для такого использования в бизнесе? Ограничение mssql express (4 ГБ памяти и 1 ГБ оперативной памяти) вызывают узкие места на веб-сайте?
4) Могу ли я без проблем перенести базу данных из экспресс-выпуска в выпуск рабочей группы mssql 2005?
2 ответа
Запутывания будет достаточно. Подписание кода не обеспечивает никакой защиты от посторонних глаз. Также наиболее респектабельные хостеры не заинтересованы в вашей интеллектуальной собственности и данных. Они занимаются хостингом в конце дня.
Я работаю в хостинговой компании, и у нас быстро растет число клиентов, размещенных на нашей платформе виртуализации. Одно из преимуществ, как для клиента, так и для нас самих, заключается в том, что если вам нужно больше ЦП или памяти, мы можем добавить их практически сразу, потому что это всего лишь параметр конфигурации на ВМ. В конечном итоге все зависит от того, как ваш поставщик создал свою виртуальную среду. Вам действительно нужно собрать больше информации о возможностях и ограничениях их среды, о том, сколько серверов на узел они обычно работают и т. Д., И решить, подходит ли это для вас.
SQL 2005 Express будет работать так же хорошо, как и полноценный SQL 2005. Ограничения заключаются в функциональности (например, отсутствие olap, что-то вроде этого) и, как вы правильно заметили, максимальный объем памяти, который он может использовать, и максимальный размер БД. Однако производительность снизится, если вы превысите максимальный объем доступной памяти.
Базы данных SQL 2005 Express могут быть скопированы и восстановлены в любом продукте SQL 2005/2008 без каких-либо проблем.
Не зная объема трафика, который попадет в ваше приложение, было бы трудно предсказать, является ли виртуальный сервер лучшим выбором среды. То же самое относится и к SQL 2005 Express. Если приложение интенсивно использует базу данных, вы можете столкнуться с повышенным давлением памяти - чем больше памяти у SQL-сервера, тем больше он может кешировать. Я думаю, что вам нужно самостоятельно спланировать мощность и решить для себя, какое решение будет оптимальным на данный момент, а затем и в дальнейшем.
Эрхан -
Ваша основная задача безопасности не в том, чтобы защитить ваш исходный код, а в том, чтобы защитить данные ваших клиентов. Для этого вы должны убедиться, что: а) ваше общение защищено (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). Они не загружают и не устанавливают приложение, поэтому вам не нужно подписывать свой код, и вам не нужно запутывать. "Защита отражателя" даже не имеет смысла для меня в этом контексте.
Если вы беспокоитесь о том, что ваша хостинговая компания увидит ваш код, вам следует найти другую хостинговую компанию. При этом я просто не могу представить, что любая уважаемая хостинговая компания действительно заботится о том, чтобы увидеть ваш исходный код.
Удачи!