首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 漏洞對策與安全防護指南

     編輯:PHP 相關知識

前言

PHP 本身語言層面無重大缺陷,安全風險主要來自應用程式撰寫不當。本文分析 PHP 運作機制衍生的三大風險來源及防範措施。

風險來源

  1. 任意檔案讀取:PHP 解釋器本質是讀取腳本檔並執行。若程式未嚴格過濾使用者輸入的檔案路徑參數 (如 fopen($file)),攻擊者可讀取敏感檔案 (/etc/passwd, ../../../winnt/repair/sam._)。
  2. 命令注入:PHP 可執行外部命令 (exec(), system(), passthru(), 反引號)。若使用者輸入未過濾直接拼入命令,攻擊者可注入任意指令 (如 a|reboot, rf -rm /*)。
  3. 全域變數污染:register_globals=On 時,使用者輸入自動成為全域變數,易導致未初始化變數被惡意覆寫。

防禦策略

  • 嚴格驗證輸入:白名單驗證檔案名、命令參數;使用 basename()、realpath() 限制路徑。
  • 關閉 register_globals:php.ini 設 register_globals = Off,改用 $_GET, $_POST, $_REQUEST 存取。
  • 啟用 safe_mode:限制可執行命令、可用函數、基於擁有者的檔案存取、禁用檔案上傳。
  • 設定 open_basedir:限制腳本僅能存取指定目錄樹。
  • 錯誤資訊不輸出到頁面:display_errors=Off, log_errors=On。
  • 禁止遠端檔案開啟:allow_url_fopen=Off。
  • 資料庫操作使用預處理語句:防止 SQL Injection。

總結

安全非單一設定可解,需結合程式碼審查、伺服器加固、定期更新、最小權限原則等纵深防禦。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved