Django是安全关键应用程序的不错选择吗?

时间:2009-01-31 10:46:37

标签: python django security

Django是安全关键应用程序的不错选择吗?

我问这是因为大多数在线银行软件都是使用Java构建的。这有什么真正的原因吗?

7 个答案:

答案 0 :(得分:30)

实际上,Java和Python中的安全性是相同的。仅摘要密码处理,快速超时的cookie,小心删除会话,多因素身份验证。这些都不是Java框架或像Django这样的Python框架所特有的。

实际上,Django有一个安全后端架构,允许您添加自己的LDAP(或AD)连接,可能会改变使用的摘要技术。

Django有一个Profile模型,您可以在其中保留其他身份验证因素。

Django为视图功能授权检查提供了一些标准装饰器。由于Python非常灵活,您可以轻松地编写自己的装饰器函数,以便在不同的或额外的身份验证检查中进行分层。

安全性是Django中许多一流的功能。

答案 1 :(得分:17)

可能是Java背后的原因并不在于安全性。我认为Java更多地用于大型开发公司,银行通常会依赖它们来满足它们的开发需求(这可能不仅与网站有关,而且在后端更加深入)。

所以,我认为没有安全理由,主要是文化原因。

答案 2 :(得分:8)

使用Java构建银行应用程序的原因与安全性无关,至少恕我直言。它们与:

有关
  1. Java是21世纪的COBOL,所以有很多遗留代码需要重写并且需要时间。基本上银行应用程序是旧的应用程序,大约十年前它们是用java构建的,没有人想要丢弃所有旧代码(BTW几乎总是一个错误的决定),
  2. 有些人认为静态类型语言比动态类型语言更“安全”。恕我直言,这不是真的(以Java 5之前的集合为例)。

答案 3 :(得分:4)

我发现Java和银行业之间的联系错误了。

大多数银行软件都有可怕的安全性。许多银行软件都是用Java编写的。这是否意味着Java使编写安全软件比其他语言更难?

可能不是Java的错,因为银行软件中的安全性(和安全性)很少。实际上,就像其他海报所提到的那样,语言的选择通常对你的安全性没有什么影响 - 除非你选择少数语言中的一种,只有热门编码器才能编写安全代码(C和PHP会想到)。

许多大型电子商务网站都是使用各种框架用Python,Ruby和Perl编写的。我认为商家的安全要求远远高于银行业的要求。这是因为商家必须提供安全性和良好的用户体验,而银行客户愿意忍受无法使用的接口SecureID令牌等等。

是的:Django可以胜任这项任务。

答案 4 :(得分:1)

您不应该依赖框架上的应用程序的安全性。尽管Django确实采用了大量针对传统安全问题的措施,但它无法保证您的应用程序是安全的,您需要的不仅仅是编程框架来获得安全关键应用程序。

我会说是的,Django是一个很好的选择,只要你知道它的功能和限制,并且意识到每个应用程序的安全漏洞。

答案 5 :(得分:1)

您可以使用Django构建一个安全的应用程序,就像使用任何流行的Java框架一样。 Java确实发挥作用的一个部分是其广泛的加密库。

对于Django所需的最小加密任务,Python的加密服务已经足够,但是它缺乏强大的分组密码使得Django中的加密机制对于静态数据不安全。

Python本身支持安全散列算法,包括SHA1,SHA224, SHA256,SHA384和SHA512,但是Django的身份验证机制还没有 要更新以使用SHA1以外的任何东西,使其可能容易受到加密分析的影响。

答案 6 :(得分:0)

您指的是完整的应用程序是用Java构建的,还是仅仅是您在浏览器中看到的部分?如果是后者,原因可能是因为在网页的上下文中,可以下载并运行Java applet。