Является ли Django хорошим выбором для критически важных приложений? - PullRequest
22 голосов
/ 31 января 2009

Является ли Django хорошим выбором для критически важных приложений?

Я спрашиваю это, потому что большая часть программного обеспечения для онлайн-банкинга построена с использованием Java. Есть ли реальная причина для этого?

Ответы [ 7 ]

30 голосов
/ 31 января 2009

На самом деле безопасность в Java и Python одинакова. Обработка паролей только в виде дайджеста, быстрое время ожидания файлов cookie, тщательное удаление сеансов, многофакторная аутентификация. Ничто из этого не является уникальным для Java-фреймворка или Python-фреймворка, такого как Django.

Django, действительно, имеет бэкэнд-архитектуру безопасности, которая позволяет вам добавлять ваше собственное соединение LDAP (или AD), возможно, изменяя используемую технику дайджеста.

Django имеет модель профиля, в которой вы можете сохранить дополнительные факторы аутентификации.

Django предлагает несколько стандартных декораторов для проверки авторизации функции просмотра. Поскольку Python настолько гибок, вы можете легко написать свои собственные функции декоратора для слоя в другой или дополнительной проверке аутентификации.

Безопасность - это ряд первоклассных функций в Django.

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

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

Итак, я не вижу никаких соображений безопасности, в основном культурных.

8 голосов
/ 01 февраля 2009

Причины создания банковских приложений на Java не связаны с безопасностью, по крайней мере, ИМХО. Они связаны с:

  1. Java - это COBOL 21-го века, поэтому существует много устаревшего кода, который необходимо переписать, и на это нужно время. В основном банковские приложения - это старые приложения, они были созданы в Java около десяти лет назад, и никто не хочет выбрасывать весь старый код (что, кстати, почти всегда является плохим решением),
  2. некоторые люди считают, что статический типизированный язык несколько «безопаснее», чем динамический типизированный язык. Это, ИМХО, неверно (например, коллекции до Java 5).
4 голосов
/ 01 февраля 2009

Я считаю, что ваша связь между Java и банковским обслуживанием неверна.

Большинство банковских программ имеет ужасную безопасность. И многие банковские программы написаны на Java. Означает ли это, что Java затрудняет написание защищенного программного обеспечения, чем другие языки?

Вероятно, это не вина Java, что в банковском программном обеспечении так мало безопасности (и безопасности). На самом деле, как упоминалось в других постерах, выбор вашего языка, как правило, имеет очень небольшие последствия для вашей безопасности - если вы не выберете один из немногих языков, на котором только горячие кодеры могут писать безопасный код (C и PHP приходят на ум).

Многие огромные сайты электронной коммерции написаны на Python, Ruby и Perl с использованием различных фреймворков. И я бы сказал, что требования к безопасности для торговцев намного выше, чем требования банковской индустрии. Это связано с тем, что продавцы должны обеспечивать безопасность и хороший пользовательский опыт, в то время как банковские клиенты готовы мириться с непригодными интерфейсами токенов SecureID и прочим.

Так что да: Джанго справляется с задачей.

1 голос
/ 16 апреля 2010

Вы можете создать безопасное приложение с Django так же, как и с любой популярной платформой Java. Одна из частей, в которой работает Java, - это ее обширная криптографическая библиотека.

Для минимальных задач шифрования, которые требуются Django, достаточно использовать криптографические службы Python, однако отсутствие надежных блочных шифров делает механизм шифрования в Django небезопасным для данных в состоянии покоя.

Python изначально поддерживает алгоритмы безопасного хэширования, включая SHA1, SHA224, SHA256, SHA384 и SHA512, однако механизм аутентификации Джанго еще быть обновленным для использования чего-либо кроме SHA1, что делает его потенциально уязвимым для криптографического анализа.

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

Вы не должны полагаться на безопасность приложения на платформе. даже несмотря на то, что Django предлагает довольно много мер против классических проблем безопасности, он не может гарантировать, что ваше приложение будет защищено, для получения критически важного приложения безопасности требуется гораздо больше, чем среда программирования.

Я бы сказал, что да, Django - хороший выбор, если вы знаете его возможности и ограничения и знаете о недостатках безопасности каждого приложения.

0 голосов
/ 31 января 2009

Вы имеете в виду тот факт, что приложение complete построено на Java или просто часть, которую вы видите в своем браузере? Если последнее, причина, вероятно, заключается в том, что в контексте веб-страниц Java-апплеты можно загружать и запускать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...