簡體   English   中英

將用戶名和密碼存儲在加密文件而不是數據庫中

[英]Store Usernames and passwords in encrypted file instead of database

所以我知道您會說這很不好,但是我真的不喜歡使用數據庫,因為它既令人困惑又困難。 我還認為將用戶名和密碼存儲在文件中很不好,但是用戶名和密碼都會使用md5加密。 我不認為這是足夠安全的,盡管因為即時消息即將公開。 如果可以給我一些技巧,以使它更好,請告訴我。

另外,您每分鍾只能嘗試兩次;)這是我的想法: https : //drive.google.com/file/d/0B19YDO3uT0ClaVZsYjRFRVZkUzA/view?usp=sharing

另外,如果您能給我一些示例,說明如何在Web服務器中以及在何處存儲文件? 老實說我對php不太好

大多數數據庫都可以從開放的Web上訪問,並且您還必須將數據庫密碼存儲在PHP文件中。 因此,在大多數配置中,使用數據庫沒有安全性好處。 這只是一個更舒適的處理方式。

散列密碼始終是一個好主意,應該理所當然。 md5 不是安全算法。 考慮改用password_hash() 當哈希文件被盜時,請不要忘記在字符串中穿插鹽防止彩虹表連接。

任何雙向加密都將使您的系統完全不安全,因為您必須在服務器上保存用於解密為純文本的機密,攻擊者才能竊取他所需的一切。

限制登錄嘗試時間當然不是一個壞主意,但是,它並不像您想的那樣重要。 主要弱點是獲得對哈希文件的讀取訪問權限,然后處理離線的蠻力攻擊,最好使用Rainbow表。

這就是我的建議。 不要使用md5,因為它不安全且不使用迭代速度太快

實際上,您必須具有SSL證書,這樣才能防止他人看到密碼。 沒有證書的任何事情都大致等同於用戶發送原始文本密碼。 您基本上只是更改了他們的密碼。

正如zaph所指出的,最佳做法是固定證書

在客戶端上

  • 將密碼發送到Web服務器(由您的證書加密)

在網絡服務器上

您需要使用密碼散列算法,該算法也需要加鹽並進行迭代,以使散列花費大量時間(例如100毫秒)。 通常,您可以使用諸如PDKDF2bcryptscriptpassword_hash

密碼必須在服務器上散列。

使用HTTPS交流密碼並在應用程序中固定服務器證書,固定很重要,因為它將防止MITM攻擊。

DB可能不是必需的,這是查找時間和磁盤I / O的問題。 您可以從一開始就開始,如果需要的話,可以遷移到數據庫。 “鮑勃叔叔”馬丁延遲在FitNesse中使用數據庫,最后發現只需要一個平面文件解決方案。

注意:基本上所有簡單的哈希方法(例如SHA2,SHA3等)都是快速的,並且需要多次迭代才能增加計算時間。 時間很重要,因此攻擊者無法快速進行哈希處理。 每個密碼都需要隨機(不是完全唯一)鹽,以消除對預先計算的哈希的彩虹表的使用。

暫無
暫無

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

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