Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

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

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

Итак, да: Django подходит к задаче.

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

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