簡體   English   中英

簡單的PHP密碼頁面-為什么要加密?

[英]Simple PHP Password Page - Why Encrypt?

假設您有一個簡單的頁面,需要輸入密碼,然后將此頁面通過密碼發送給朋友,這樣他們就可以查看其中的隱藏信息。

這是不安全的,為什么?

$password = htmlentities($_POST["password"]);
echo ($password == "hello123" && strlen($password) <= 10)
? "secret information" : "incorrect password";

有人可能發起什么攻擊? 我想象他們會嘗試突破查詢嗎? 頁面(SHA1)中的密碼加密如何安全?

沒有查詢。 對於這樣的簡單頁面,沒有理由進一步保護它,因為黑客必須訪問您服務器的文件系統以查找密碼。

如果用戶選擇自己的密碼,則必須散列密碼。 他們通常會在多個站點重復使用相同的密碼,如果您的站點泄漏,其他更重要的站點也會受到威脅。

即使您將密碼硬編碼在代碼中,也最好將其哈希值放入代碼中。 要做的工作很少,可以訪問服務器的每個人都可以以其他方式讀取密碼(主機,丟失的備份,版本控制等)。

從數據庫中獲取密碼通常比從代碼中獲取硬編碼的密碼(需要服務器上的特權)更容易(SQL注入),因此需要更好地保護數據庫中的密碼。

一個簡單的哈希(如sha1)可以被15歲的老手以線索和游戲者gfx卡每秒攻擊超過10億次(如果攻擊者獲得了哈希並試圖找到明文密碼,例如,在找到某種方式后)從存儲哈希值的任何位置讀取哈希值)。

如果您向哈希添加鹽,甚至仍然是這樣。

因此,如果不需要,請不要編寫自己的密碼,有很多方法可以證明代碼可以為您檢查某些密碼(例如,通過某些apache模塊,或者通過良好的php密碼庫,... )。

當它內部使用pbkdf2,bcrypt,scrypt和sha512-crypt之類的密碼時,表明該密碼可能是正確的並且足夠現代。

暫無
暫無

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

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