PHP安全之道學習筆記6 密碼安全

2022-01-10 00:38:23 字數 1213 閱讀 1729

最近幾年使用者資料洩露越發頻繁,一些使用php技術的大型**被暴庫或者脫庫,facebook公司曾因為此類事件股價**。從長遠發展來看,使用者的資料安全對於**來說至關重要,所以開發者需要關注資料相關的安全,並提高一些對敏感資料的技術性保護。

使用者資料的安全往往和使用者密碼安全息息相關。使用者將賬號和相關資料儲存在伺服器上,而密碼成了第乙個環節。

具體**如下所示:

<?php

$password = $_post['password'];

echo md5($password); // md5加密

echo sha1($password); // sha1加密

由於這種加密手段比較常規,如果使用者設定的密碼過於常見簡單,攻擊者完全可以使用密碼字典進行暴力破解。所以不建議使用md5等弱加密演算法對密碼等敏感資料進行加密,使用雜湊演算法進行加密更佳,如:sha256或者sha512。這些演算法被用於如ssl證書生成或一些重要的生成演算法中,值得使用。

php內建了hash()函式,具體使用如下**所示。

<?php

$password = $_post['password'];

echo hash('sha256', $password); // 使用sha256加密

echo hash('sha512', $password); // 使用sha512加密

曾經有乙個神奇的電商**有一句有名的slogan:"我為自己代言。"在密碼安全方面我們也可以為自己的資料加點「鹽」,增加安全係數。

使用鹽(salt)甚至隨機salt來加密,可以讓破解更加困難。簡單例子如下:

<?php

$password = $_post['password'];

$salt = rand(1, 100000);

$password = sha1($password . $salt);

而更為複雜的加密,可以使用mcrypt函式來生成salt,**如下:

<?php

$password = $_post['password'];

$salt = base64_encode(mcrpyt_create_iv(32, mcrypt_dev_random);

$password = md5($password . $salt);

為了防止暴力破解,可以注意以下方面:

PHP安全之道學習筆記1 PHP專案安全設定

在全球範圍來看,超過了80 的 是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。display errors off 不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。正確的做法是 把錯誤日誌寫到日誌檔案中,方...

PHP安全之道學習筆記4 系統命令注入

我們有時候寫 會用php指令碼去呼叫系統函式完成業務功能,但是一些系統函式屬於高危操作,一旦被webshell或者抓住漏洞則後患極大。下面整理如下風險系統函式.該函式可以執行系統命令,並且返回輸出結果到 output中。具體使用請參考官網。例如 使用者訪問 http localhost exec.p...

Web前端開發修煉之道 學習筆記一

1 前期的構思很重要,是乙個先慢後快的過程 2 制定規範 3 團隊的分工與合作 2.1 語義化標籤,那如何評判?2.2 語義化的標題和內容模組 html部分 更多 段落一的內容根據瀏覽器的預設樣式 段落二的內容 css部分 title title h2 p strong2.3 語義化的表單模組 ht...