2012-10-11 29 views
1

我必須做一個什麼項目設計模式,將用於其在醫療保健領域,所以還是應該使用,因爲系統應該是足夠強大,以便沒有黑客找到一種方法的設計模式竊取或竊取信息。如何選擇在Java

the following technology is used 
1.struts 1.2.9 
2.mysql for backend 
3.spring security. 

所以請建議我這樣做的最好的設計和樣品,如果可能的,因爲我從來沒有與設計模式工作。

所以,請幫助我實現這個

問候。

+3

'沒有黑客在理想世界中找到破解或竊取信息的方式...... –

+0

是真實的,但不應該允許未經授權的人訪問任何人進入系統,感謝評論,但對所問的問題沒有用處 –

+1

您需要開始的是系統的體系結構;設計模式會在以後開始共同/設計系統中的實際模塊時出現。無論如何,你的問題截至目前的描述過於寬泛 – Scorpion

回答

3

安全系統的一般準則。 (不完整,只是我自己的觀察)

即使您剛剛從數據庫中讀取信息,也不要信任信息,不要認爲信息100%安全地存儲回來始終驗證它是否安全(沒有sql或腳本注入)。

不要從存儲分開檢查,你永遠不知道什麼時候會有人複製粘貼代碼所缺少的驗證步驟,儘量使存儲在沒有檢查中止的方式。

永遠不要相信默默無聞,總是要驗證權限和數據。

對權限使用一致的解決方案,因此不應存在關於如何檢查權限的歧義。

仔細對誰需要訪問想想和避免加載信息不應該存在,而且是不需要的,如果它不是在內存中,將更加難以獲取。

單獨使用內置的權限檢查數據檢索層,使其更難被黑客攻擊的第一客戶層獲取數據。

考慮幾個步驟的風險,在數據庫中存儲的腳本標記可能是安全的,但什麼損害可能是腳本的原因,如果加載到頁面中的有效會話。

驗證任何Ajax調用,注入javascript(可能來自客戶端計算機或插件中的病毒),否則可能會發送您自己的頁面永遠不會發送的命令,並在用戶的上下文中發送它們。

,尋找如何構建安全系統的書籍,在這裏沒有職位將涵蓋一切,沒有書將取代經驗和刨。

而依靠規則生活,沒有安全的系統,只有足夠的破解力。

1

您的問題非常模糊。給我們一個主要組件的清單,並要求我們提出「最佳設計」......請給我們(很多)更多的細節,請問?

1

正如其他人已經提到:從您的架構開始! 特別是弄清楚,

哪位指出你的應用程序可以有,如何支持,只有在允許的狀態達到了程序員(狀態轉換建模)

  • 如何驗證傳入的請求

  • 如何發現非法訪問

  • 如何保護您的應用程序本身(Web服務器,...)

設計模式將幫助你,當你做日常工作時,但不能保護你免受架構中的安全漏洞攻擊。 建築師會給你很多提示,這些設計模式是有意義的。

至少有一件事我會考慮:Stut 1.2.9。這不是最新的版本(意味着不是最好的),struts本身也有一些架構方面的安全問題。 當你使用彈簧時,爲什麼不使用其他更現代的組件呢?

2

我想你誤解了術語設計模式。設計模式通常用於泛型或「模板」(注意,這是一個壞詞,因爲它也用於設計模式名稱)代碼解決方案,適用於一般問題(對象創建,繼承結構,和對象行爲)在面向對象的編程環境,以提高語言不可知的方式的可重用性。

沒有設計模式來確保系統不可破解 - 每種語言都有最佳實踐,但嚴格編程之外,還有很多其他方面來保護系統。就像你可以使用最高級別的咒語來達到什麼目的一樣,當你的root密碼仍然是默認的密碼時......