PHP给后台管理系统加安全防护机制的一些方案
本篇文章主要講解PHP管理系統(tǒng)后臺(tái)管理員登錄中心的防護(hù)方法。
適用范圍:php原生、框架內(nèi)部使用、或者其他語(yǔ)言和系統(tǒng)參考。
方案一、通過(guò)在登錄界面增加URL的加密參數(shù)進(jìn)行判斷 【能避免暴力破解、相對(duì)輕便簡(jiǎn)單】
配置參數(shù)說(shuō)明: 后臺(tái)系統(tǒng)設(shè)置界面、或者數(shù)據(jù)庫(kù)存儲(chǔ)、再或者將加密參數(shù)存儲(chǔ)在redis緩存中都可。
主要思路: 保存一個(gè)明文或者密文在指定的位置,登錄界面訪問(wèn)時(shí)進(jìn)行加密參數(shù)的匹配,成功者顯示界面,不成功則不顯示。
代碼實(shí)例:
<?php//以URL /admin.php?key=123456 為例子$key = $_GET['key'];//加密的參數(shù),明文或者密文 $_key = $_SESSION['key'];//以保存在session中為例,mysql的自行取值存,redis自行,只要做到存儲(chǔ)密文讀取密文內(nèi)容即可。加密時(shí)則保存加密的內(nèi)容//明文時(shí)判斷if($key!==$_key){return '404';//此處提示錯(cuò)誤信息,或者直接用header函數(shù)跳轉(zhuǎn)到首頁(yè)即可 }//以md5()加密的密文為例if($key!==md5($_key)){return '404';//此處提示錯(cuò)誤信息,或者直接用header函數(shù)跳轉(zhuǎn)到首頁(yè)即可 }作用:保護(hù)后臺(tái)管理系統(tǒng)不被暴力破解。
二、對(duì)登錄進(jìn)行多重密碼的校驗(yàn) 【能避免暴力破解】
配置參數(shù)說(shuō)明: 設(shè)置一個(gè)登錄的口令,登錄表單中賬號(hào)密碼、口令都輸入正確才可進(jìn)行登錄,并且同上一個(gè)方法一樣,存儲(chǔ)固定。可單一一個(gè)對(duì)應(yīng)一個(gè)管理員,也可共同使用一個(gè)。
主要思路: 驗(yàn)證口令,口令和密碼均對(duì)才可登錄,防止被暴力破解的可能性。
代碼實(shí)例:
<?php//參數(shù)獲取示例$number = $_POST['number'];//賬號(hào)號(hào)碼$pwd = md5($_POST['pwd']);//密碼$aqm = md5($_POST['aqm']);//安全碼 用戶前端輸入的$_aqm = $_SESSION['_aqm'];//以session為例子獲取早早存儲(chǔ)好的安全碼$code = $_POST['code'];//登錄驗(yàn)證碼,也可以時(shí)行為驗(yàn)證的參數(shù)...增加上驗(yàn)證碼的驗(yàn)證,對(duì)比驗(yàn)證碼的參數(shù)是否匹配//進(jìn)行驗(yàn)證if($aqm!==$_aqm){echo '驗(yàn)證失敗';//...存入失敗次數(shù)和賬號(hào)以及ip的信息,并累計(jì)失敗次數(shù),達(dá)到一定數(shù)目時(shí)直接拒絕請(qǐng)求}$login_err_num = $_SESSION['login_err_num'];//以session為例累計(jì)失敗次數(shù),并獲取失敗的次數(shù)if($login_err_num>=5){echo '請(qǐng)求被拒絕';}.... 此處代碼邏輯省略,用戶的密碼驗(yàn)證以及相關(guān)的安全驗(yàn)證邏輯 自行書(shū)寫(xiě)三、通過(guò)固定的vpn進(jìn)行登錄 【相對(duì)私密安全、實(shí)用】
說(shuō)明:通過(guò)運(yùn)維,禁止訪問(wèn)登錄url,并創(chuàng)建一個(gè)vpn,并將這個(gè)vpn的地址綁定為白名單。只有通過(guò)這個(gè)vpn賬號(hào)在自己的電腦中登錄后才可訪問(wèn)這個(gè)url,否則任何訪問(wèn)都不可以。
四、通過(guò)固定的win云主機(jī)進(jìn)行登錄 【相對(duì)私密安全、比較多此一舉】
說(shuō)明:購(gòu)買(mǎi)一臺(tái)win系統(tǒng)的主機(jī),通過(guò)綁定這臺(tái)主機(jī)的ip地址,進(jìn)行驗(yàn)證和判斷是否可以請(qǐng)求登錄url。或者后臺(tái)管理系統(tǒng)假設(shè)在這臺(tái)主機(jī)中,只能通過(guò)127.0.0.1進(jìn)行內(nèi)部的訪問(wèn)。
五、內(nèi)網(wǎng)限制 【相對(duì)私密安全、實(shí)用適合辦公】
說(shuō)明:和三四的方案異曲同工,通過(guò)linux或其他系統(tǒng)特性,制定企業(yè)內(nèi)網(wǎng)環(huán)境,并將后臺(tái)管理系統(tǒng)搭建在內(nèi)網(wǎng)中獨(dú)立存在,只能通過(guò)連接公司有線網(wǎng)絡(luò)或者無(wú)線網(wǎng)絡(luò)進(jìn)行訪問(wèn),同時(shí)假設(shè)vpn,員工在家也可電腦登錄vpn進(jìn)行內(nèi)網(wǎng)的訪問(wèn)。
end:當(dāng)然除了上面舉例的以外,還是有很多其他方式對(duì)此進(jìn)行安全防護(hù)的方法,如通過(guò)服務(wù)器系統(tǒng)進(jìn)行相對(duì)應(yīng)的防御機(jī)制的開(kāi)發(fā)。
總結(jié)
以上是生活随笔為你收集整理的PHP给后台管理系统加安全防护机制的一些方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 十二届蓝桥杯C++ 1月 中 高级组试题
- 下一篇: 动态规划算法php,php算法学习之动态