2009-01-31 46 views
22

Django是安全關鍵應用程序的不錯選擇嗎?Django是安全關鍵應用程序的不錯選擇嗎?

我在問這個問題,因爲大多數在線銀行軟件都是使用Java構建的。這有什麼真正的原因嗎?

+8

請不要混淆Java(語言)和Django(Python中的框架)。您是否將某些Java框架(即Struts)與Django進行比較?你在比較Java和Python嗎? – 2009-01-31 13:09:13

回答

30

實際上,Java和Python的安全性是一樣的。僅包含摘要的密碼處理,快速超時的Cookie,會話的小心刪除,多因素身份驗證。這對於像Django這樣的Java框架或Python框架來說都不是唯一的。

Django確實擁有一個安全後端架構,允許您添加自己的LDAP(或AD)連接,可能會改變使用的摘要技術。

Django有一個配置文件模型,您可以在其中保留其他身份驗證因素。

Django提供了一些用於查看功能授權檢查的標準裝飾器。由於Python非常靈活,你可以簡單地編寫你自己的裝飾器函數來進行不同或額外的驗證檢查。

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

17

可能是Java背後的原因並不在於安全性。我認爲Java更多地用於大型開發公司,而銀行通常會訴諸於他們的發展需求(這可能不僅與網站有關,而且會在後端更深入)。

所以,我沒有看到安全原因,主要是文化因素。

0

您是否指的是完整的應用程序是使用Java構建的,還是僅僅是您在瀏覽器中看到的部分?如果是後者,原因可能是因爲在網頁上下文中,Java applet可以被下載並運行。

1

您不應該依賴框架上應用程序的安全性。即使Django提供了相當多的針對經典安全問題的措施,但它不能保證您的應用程序將是安全的,您需要的不僅僅是一個編程框架來獲得安全關鍵應用程序。

我會說是的,只要您知道它的權力和限制,並且知道應用程序的安全缺陷,Django是一個不錯的選擇。

8

在Java中構建銀行應用程序的原因與安全無關,至少恕我直言。他們涉及到:

  1. Java是21世紀的COBOL,所以有很多遺留代碼必須重寫,這需要時間。基本上,銀行應用程序是舊應用程序,它們是在十年前用java構建的,並且沒有人願意拋棄所有舊代碼(順便說一句,這幾乎總是一個糟糕的決定),有些人認爲靜態類型化的語言有點不同比動態類型語言更「安全」。這是恕我直言,不是真的(例如在Java 5之前的集合)。
4

我發現你的Java和銀行之間的連接錯誤結束。

大多數銀行軟件具有可怕的安全性。許多銀行軟件都是用Java編寫的。這是否意味着Java比其他語言編寫安全軟件更困難?

銀行軟件的質量安全性(安全性)可能不是Java的錯。實際上,和其他海報一樣,選擇你的語言通常對你的安全性沒有什麼影響 - 除非你選擇少數語言中只有熱門編碼者可以編寫安全代碼的語言(想起C和PHP)。

許多巨大的電子商務網站都是使用各種框架以Python,Ruby和Perl編寫的。我認爲對商戶的安全要求遠高於銀行業的要求。這是因爲商家必須提供安全性和良好的用戶體驗,而銀行客戶願意忍受不可用的接口SecureID令牌等等。

所以是的:Django完成任務。

1

您可以像使用任何流行的Java框架一樣使用Django構建安全的應用程序。 Java的閃亮之處在於其廣泛的加密庫。

對於Django需要的最小加密任務,Python的加密服務已經足夠,但是由於缺少強分組密碼,Django中的加密機制對於靜態數據不安全。

Python不原生支持安全散列算法,包括SHA1,SHA224, SHA256,SHA384和SHA512,但是Django的認證機制尚未 進行更新,以使用比SHA1其他任何東西,使得它可能受到密碼分析。

相關問題