Действительно ли Django является хорошим выбором для важного приложения безопасности?

Переменная, которую вы объявили, является полем экземпляра, что означает, что только экземпляры класса могут установить его (и он может быть различным для каждого экземпляра). Но вы используете методы static, и у них нет доступа к полям экземпляра (или методам).

Обычно способ решить эту проблему - создать переменную static, если вы хотите использовать ее в static методах:

class Program
{
    public static string test;

    public static void Main(string[] args)
    {
        test = "hi!!";
        Console.WriteLine($"Inside 'Main' method, 'test' == '{test}'");

        Main2();

        Console.Write("\nDone! Press any key to exit...");
        Console.ReadKey();
    }

    public static void Main2()
    {
        Console.WriteLine($"Inside 'Main2' method, 'test' == '{test}'");
    }
}
22
задан Peter Mortensen 13 December 2009 в 16:48
поделиться

7 ответов

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

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

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

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

безопасность является многими первоклассными функциями в Django.

30
ответ дан S.Lott 29 November 2019 в 03:50
поделиться

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

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

17
ответ дан piro 29 November 2019 в 03:50
поделиться

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

  1. Java является КОБОЛом 21-го века, таким образом, существует много унаследованного кода, который должен был бы быть переписан, и это занимает время. В основном банковские приложения являются старыми приложениями, они были созданы в Java приблизительно десять лет назад, и никто не хочет выбросить весь старый код (какой BTW является почти всегда плохим решением),
  2. , некоторые люди полагают, что статический типизированный язык несколько "более безопасен", чем динамический типизированный язык. Это, по моему скромному мнению, не верно (возьмите, например, наборы до Java 5).
8
ответ дан Bartosz Radaczyński 29 November 2019 в 03:50
поделиться

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

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

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

Много огромных САЙТОВ ЭЛЕКТРОННОЙ КОММЕРЦИИ записаны в Python, Ruby и Perl с помощью различных платформ. И я утверждал бы, что требования к защите для продавцов намного выше, чем требования банковского дела. Это вызвано тем, что продавцы должны обеспечить безопасность и хороший пользовательский опыт, в то время как банковские клиенты готовы выносить неприменимые интерфейсы маркеры SecureID и безотносительно.

Так да: Django до задачи.

4
ответ дан Peter Mortensen 29 November 2019 в 03:50
поделиться

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

0
ответ дан Albert Visser 29 November 2019 в 03:50
поделиться

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

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

1
ответ дан Jj. 29 November 2019 в 03:50
поделиться

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

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

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

1
ответ дан 29 November 2019 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: