首頁  >  文章  >  後端開發  >  php的四大安全策略你知道嗎?

php的四大安全策略你知道嗎?

怪我咯
怪我咯原創
2017-07-05 10:32:461118瀏覽

這篇文章主要介紹了PHP中的檔案系統安全資料庫安全性、使用者資料安全性等與安全相關的問題,需要的朋友可以參考下

一、檔案系統安全
php如果具有root權限,且在腳本中允許使用者刪除文件,那麼使用者提交數據,不進行過濾,就非常有可能刪除系統文件

<?php
// 从用户目录中删除指定的文件
$username = $_POST[&#39;user_submitted_name&#39;];
$userfile = $_POST[&#39;user_submitted_filename&#39;];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>

上面的程式碼,假設使用者提交的$userfile值是../etc/,那麼/etc目錄就會被刪除
防範檔案系統攻擊,策略如下

只給php有限的權限
使用者提交上來的變數要監測和過濾,不能包含檔案路徑等特殊字元
盡量避免使用PHP操作檔案(刪除),如果有這方面的需求,那麼使用者可刪除文件也必須是系統產生的隨機名稱,不可被使用者控制
二、資料庫安全
資料庫安全主要防範的是sql injection,即sql注入攻擊,提升資料庫安全性的策略如下:

不用使用root帳號或資料庫擁有者帳號連接資料庫,連接資料庫限定連線使用者的ip
使用php的pdo擴展,有效防止sql注入,除了安全方面的優勢,php的pdo擴充在效能方面有很大優勢
請參考http://php.net/manual/en/pdo.prepared-statements.php
對一些敏感資訊進行加密,常見的例如對密碼進行加密
三、用戶資料過濾
對用戶資料過濾,可以防範XSS和CSRF攻擊

使用白名單(用戶輸入是固定模式)的方式
例如使用者名稱只能使用數字字母,那麼可以使用函數ctype_alnum判斷
對使用者輸入使用函數htmlentities或htmlspecialchars進行處理,輸入url不允許傳入非http協定
使用者驗證使用令牌token(csrf)
http://htmlpurifier.org/ HTML Purifier 是開源的防範xss攻擊的有效解決方案,
四、其他安全策略
線上環境關閉錯誤報告(error_reporting,dislay_erros,可在php.ini中配置error_log路徑,記錄錯誤訊息,這樣有助於發現可能的使用者攻擊)
Register Globals,棄用(移除)的特性,不要使用
魔術引號特性,不要開啟,在PHP-5.4中已經被移除
盡量使用PHP的最新版本,最新版本修復了已知的許多安全漏洞和bug
程式碼中嚴格遵守上述策略,基本能確保程式碼不會有太多的安全漏洞,能防範常見攻擊。

以上是php的四大安全策略你知道嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn