2011-06-29 35 views
1

我正在開發一個管理界面,通過互聯網上的遠程服務器上的敏感數據對需要最佳安全保護的CRUD執行CRUD。我手邊有兩種選擇,但我無法弄清楚哪種方法更好。Web應用程序vs客戶端/服務器本機應用程序安全明智,哪個更好?

  1. 創建使用利用諸如IP過濾器,密碼等

  2. LAMP + SSL和控制訪問的web應用創建原生服務器/客戶端應用程序,並使用TCP套接字與SSL式加密通信並使用密碼來控制訪問。

我深知,沒有什麼安全投入在網絡上後,我已經考慮隧道的選擇到服務器,並運行作爲本地應用程序。

但是,從用戶角度來看,這將是相當困難的恕我直言,所以除了那些更好的選項,用戶友好?

不是很熟悉安全的東西,所以任何建議都會有幫助。謝謝。

+0

如果您對安全性不是很熟悉,我會避免使用自己的解決方案。 –

回答

0

這兩種方法都不會比其他方法更安全。如果你使用TCP套接字,那麼危險的是有人注意到服務器正在偵聽TCP連接,連接到它並且計算出你的數據交換協議。如果你採用網絡應用的方式,那麼危險的是有人發現網站的URL,使其超過你的過濾,並能夠建立(或劫持)認證的會話。

任何一個都需要攻擊者執行相同的基本步驟(發現服務存在,連接/訪問服務,說服服務他們有權執行受保護的操作)。要麼任何一方都要求你知道自己在做什麼或徹底做好功課,以便創建一個真正安全的系統。

所以在這個意義上,我建議你用更熟悉的方法去做。當然,值得考慮的是,如果您選擇了Web應用程序路線,可能會有更多的預建安全庫和工具可供選擇。例如,可能有許多Java Filter實現可以讓您指定基於IP的黑名單和白名單參數,並且許多服務器將包含用於處理用戶身份驗證的預構建框架等等。

0

就tcp套接字與https的安全性而言,可能幾乎沒有差異。由於套接字不太「標準」,因此可能會有更多的保護,因爲簡單的現成瀏覽器+標準http [s]可能不起作用。然而它比安全性更隱晦。

您必須考慮兩件事: 隱私:確保其他人無法看到傳輸中的數據。像SSL這樣的東西應該覆蓋這個。 身份驗證:服務器信任客戶端是它說的。這是一個更難的問題。如果你需要某種「密碼」,它會有所幫助,但當然你必須管理密碼等。這本身就是一個很大的話題。

0

如果您的用戶擁有「12345」作爲密碼,那麼世界上最強大的加密無關緊要。如果您擔心安全問題,請勿使用密碼。

+0

與你同意,但我們只需要照顧小用戶羣。因此,我們可以設置和分發強密碼。 –

+0

當然,但你能阻止他們改變它嗎?或寫下來?或者在瀏覽器中點擊「記住」?取而代之,使用證書同樣簡單。 (或者更好,除此之外)。 –

+0

不錯的建議。會考慮它。謝謝 –

相關問題