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