程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP四大安全策略

PHP四大安全策略

編輯:關於PHP編程

      這篇文章主要介紹了PHP中的文件系統安全、數據庫安全、用戶數據安全等安全相關的問題,需要的朋友可以參考下

      一、文件系統安全

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

      

      // 從用戶目錄中刪除指定的文件

      $username = $_POST['user_submitted_name'];

      $userfile = $_POST['user_submitted_filename'];

      $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

      代碼中嚴格遵守上述策略,基本能保證代碼不會有太多的安全漏洞,能防范常見攻擊。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved