Является ли Django хорошим выбором для критически важного приложения безопасности?
Я спрашиваю об этом, потому что большая часть программного обеспечения для онлайн-банкинга построена с использованием Java. Есть ли настоящая причина для этого?
Является ли Django хорошим выбором для критически важного приложения безопасности?
Я спрашиваю об этом, потому что большая часть программного обеспечения для онлайн-банкинга построена с использованием Java. Есть ли настоящая причина для этого?
Собственно, безопасность в Java и Python одинакова. Обработка паролей только для дайджеста, куки файлы, которые тайм-аут быстро, тщательное удаление сеансов, многофакторная аутентификация. Ни одно из этого не является уникальным для платформы Java или для инфраструктуры Python, такой как Django.
Django, действительно, имеет бэкэнд-архитектуру безопасности, которая позволяет вам добавить ваше собственное соединение LDAP (или AD), возможно, изменив используемый метод дайджест.
Django имеет модель профиля, в которой вы можете сохранить дополнительные коэффициенты аутентификации.
Django предлагает несколько стандартных декораторов для проверки полномочий функции просмотра. Поскольку Python настолько гибкий, вы можете тривиально писать свои собственные функции декоратора на уровень в другой или дополнительной проверке подлинности.
Безопасность - это ряд первоклассных функций в Django.
Вероятно, причина Java не в безопасности. Я думаю, что Java больше используется в крупных девелоперских компаниях, и банки обычно прибегают к ним для своих нужд развития (которые, вероятно, не только связаны с веб-сайтом, но и ползут глубже в бэкэнд).
Итак, я не вижу причин безопасности, в основном культурных.
Причины создания банковских приложений на Java не связаны с безопасностью, по крайней мере, IMHO. Они связаны с:
Я обнаружил, что ваша связь между Java и банковским переводом не окончена.
Большинство банковских программ имеет ужасную безопасность. И много банковского программного обеспечения написано на Java. Разве означает, что Java затрудняет создание защищенного программного обеспечения, чем другие языки?
Вероятно, это не ошибка Java, поскольку в банковском программном обеспечении так мало качественной безопасности (и безопасности). На самом деле, как и другие плакаты, выбор вашего языка обычно имеет очень мало последствий для вашей безопасности - если вы не выберите один из немногих языков, на котором только кодоны hotshot могут записывать защищенный код (C и PHP приходят на ум).
Многие огромные сайты электронной коммерции написаны на Python, Ruby и Perl с использованием различных фреймворков. И я бы сказал, что требования безопасности для торговцев намного выше требований банковской отрасли. Это связано с тем, что торговцы должны обеспечивать безопасность и хороший пользовательский опыт, в то время как клиенты-клиенты готовы мириться с непригодными для использования интерфейсами маркерами SecureID и т.д.
Итак, да: Django подходит к задаче.
Вы не должны полагаться на безопасность приложения в фреймворке. даже несмотря на то, что Django действительно имеет довольно большое количество мер против классических проблем безопасности, он не может гарантировать, что ваше приложение будет безопасным, для получения критически важного приложения безопасности вам потребуется гораздо больше, чем платформа программирования.
Я бы сказал, да, Django - хороший выбор, если вы знаете его полномочия и ограничения и знаете о недостатках безопасности каждого приложения.
Вы можете создать безопасное приложение с Django так же, как и с любой популярной платформой Java. Одна часть, где Java сияет, - это обширная криптографическая библиотека.
Для минимальных задач шифрования, требуемых Django, криптографические службы Pythons достаточны, однако отсутствие сильных блочных шифров делает механизм шифрования в Django небезопасным для данных в состоянии покоя.
Python действительно поддерживает безопасные алгоритмы хэширования, включая SHA1, SHA224, SHA256, SHA384 и SHA512, однако механизм аутентификации Djangos пока еще для обновления, чтобы использовать что-либо, кроме SHA1, что делает его потенциально уязвимым для криптографического анализа.
Вы имеете в виду тот факт, что полное приложение построено на Java или только часть, которую вы видите в своем браузере? Если последнее, вероятно, связано с тем, что в контексте веб-страниц можно загружать и запускать Java-апплеты.