2009-01-31 3 views
22

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

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

+8

Пожалуйста, не путайте Java (язык) с Django (каркас в Python). Вы сравниваете некоторую структуру Java (т. Е. Struts) с Django? Вы сравниваете Java и Python? –

+0

В этой статье упоминается более или менее тривиальная уязвимость системы безопасности в Java. Безопасность. Уязвимость появилась также в django.middleware.csrf, но была рассмотрена (найдите постоянную_компьютера в https://github.com/django/django/blob/master/django/middleware/csrf.py) – primroot

ответ

30

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

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

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

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

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

17

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

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

0

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

1

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

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

8

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

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

Я нахожу вашу связь между Java и банковским переводом не в порядке.

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

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

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

Итак, да: Django соответствует задаче.

1

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

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

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

Смежные вопросы