簡體   English   中英

本地 java 桌面應用程序的登錄架構

[英]Login architechture for a local java desktop application

你好,
我正在嘗試編寫我的第一個具有登錄功能的簡單本地桌面應用程序。 應該支持具有不同訪問權限的不同類型的用戶。 我設法想出了一些可以在程序的簡單版本中運行的東西,但是,它在幾個層面上都存在缺陷。 我只是不知道我在整個應用程序的結構上是否走在正確的軌道上。 我對安全性也很不確定。

這是我當前的實現(僅登錄特定的類/方法) 登錄架構上的 UML 圖

問題:
有人對如何實施這種系統有建議嗎? 或者在某個地方我可以了解更多關於如何以一種有意義的方式構建應用程序的信息? 我一直在學習很多設計模式和 OOB 原則,但我很難將它們應用到實際應用程序中。

注意:如果上下文很重要,則該應用程序是一個虛構的計算機商店,允許管理員將不同類型的計算機組件添加到庫存中。 客戶可以搜索和過濾這些部分並創建自己的配置。 然后客戶可以訂購該配置。

密碼功能的意義何在? 如果它在受某些用戶控制而不是您的控制的機器上運行,他們有權訪問。 你對此無能為力。

通常,對於完全在本地運行的應用程序,搭載操作系統本身; 將數據存儲在用戶的主目錄中,並確保文件的訪問權限使得其他(非管理員)用戶無法讀取它。 其他管理員用戶? 好吧,他們是管理員用戶。 如果他們想閱讀它,他們可以,這就是這些用戶的意義所在。 你不能阻止他們這樣做。 如果您將每個用戶的相關數據存儲在只有他們可以讀取的文件中,則根本不需要用戶名/密碼提示; 他們的“登錄”是他們的本地用戶名,他們的“身份驗證”是固有的。 簡單的。

用戶/通行證設置可能有意義的一次是,如果應用程序由管理員啟動並以鎖定模式啟動,在這種模式下,操作鍵盤和鼠標的人無法進入系統,也無法關閉應用程序。 這就是 ATM 的工作原理:那些只是 windows 機器,其中的“鍵盤”只是一個數字鍵盤,鼠標和計算機系統本身被鎖在一堆磚塊和金屬中。 如果您這樣做,請確保您應用了正確的密碼衛生; 不要存儲它,而是存儲它的 bcrypt/pbkdf/argon2/scrypt hash。 這樣,如果有人獲取了該文件,您的應用程序就會被破壞,但至少如果該用戶在其他網站上重新使用了他們的密碼(用戶確實如此),黑客也不會暴露這一點。

我假設你沒有那個,這讓我們回到:你想用密碼完成什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM