我最近創建了一個使用Java在我的大學項目中使用Java的密碼管理器。爲了處理數據庫,我選擇了SQLite,因爲使用MySQL或SQL服務器對於一個小型項目而言變得非常忙碌。儘管我已經完成了提交,但我想如果我可以在項目中進一步改進。防止從SQLite中的外部源數據修改
我觀察到的最大缺點是,如果有人能夠在系統中找到數據庫的位置(這太容易了),打開數據庫將非常簡單。
現在這裏有兩個問題出現了 -
- 用戶密碼列表將是可見的
- 任何人都能夠修改使用SQLite Manager中的數據。
爲了解決第一個問題,我已經使用AES加密,它工作得很好。但是,第二個問題仍然存在。
因此,在堅果外殼,我怎樣才能防止我的SQLite數據庫得到修改,除了從密碼管理器本身?
要注意的是,我的應用程序只是一個家用PC上使用的離線密碼管理器。所以,你可以相應地考慮威脅級別。此外,密碼管理器本身必須修改數據庫內容,因此分配權限應該不會阻止應用程序這樣做。
注意:我想知道是否可以使用SQLite的限制,一次只能建立一個連接來寫入數據。使用這個入侵者將無法修改它。但是,我不確定如何實施。
只是'chmod'數據庫只能讀取給你。其他用戶有他們自己的帳戶,對吧? (你也應該使用密碼哈希函數對密碼進行哈希處理) –
如果有人獲得了物理數據庫文件,則不會阻止他們查看數據或更改數據(對於任何基於服務器的數據庫管理系統來說也是如此 - 但它通常更難訪問數據庫服務器上的文件)。甚至連一個連接「限制」都不會阻止 - 關閉你的應用程序會導致無用的連接。 –
_「我想知道是否可以使用SQLite的限制,一次只能建立一個連接。」_這是不正確的。只有一個連接可以鎖定數據庫以便一次寫入,但可以存在多個連接。 –