PHP 輸入過濾與 XSS 防禦:從簡單替換到 HTMLPurifier 與 CSP 纏深防禦
為什麼簡單的 str_replace/preg_replace 過濾失效? 黑名單式過濾(移除 <script>、onerror、javascrip
PHP 安全隨機密碼生成:random_bytes、random_int 與 Sodium 最佳實踐
核心原則:使用密碼學安全隨機數生成器 (CSPRNG) 絕對禁止 使用 rand()、mt_rand()、shuffle()、array_rand()、uniq
PHP get_magic_quotes_gpc() 詳解:歷史遺留機制、檢測與現代替代方案
什麼是 Magic Quotes? magic_quotes_gpc 是 PHP 早期(< 5.4)內建的自動逃逸機制:當開啟時,所有 $_GET、$_POST
PHP Session 驗證碼實作:圖形生成、Session 綁定與 AJAX 驗證完整流程
Session 驗證碼核心流程 生成端:建立圖片 → 生成隨機碼 → 存入 $_SESSION[captcha] → 輸出圖片二進位資料。 前端:顯示 <
SQL 注入攻擊實戰解析:從基礎聯集查詢到情報蒐集自動化
聲明 本文僅供安全研究、教學與防禦用途。未經授權對目標系統進行 SQL 注入測試屬違法行為,請勿用於非法目的。 注入點發現:布爾盲注基礎 假設存在參數 id
PHP open_basedir 完整配置指南:語法、繼承規則、虛擬主機隔離與常見陷阱
open_basedir 指令語法 ; php.ini open_basedir = /allowed/path1/:/allowed/path2/:/tmp/
隱藏伺服器版本資訊:PHP expose_php、Apache ServerTokens 與 Nginx server_tokens 完整配置
為什麼要隱藏版本資訊? HTTP 回應標頭預設會洩露伺服器軟體名稱與版本號(如 Server: Apache/2.4.41 (Ubuntu)、X-Powered
PHP eval() 函數風險與禁用方案:語言結構無法由 disable_functions 禁止
核心事實:eval() 不是函數,是語言結構 eval() 在 PHP 內核中被實作為語言結構,而非標準函數。因此 php.ini 的 disable_func
PHP 輸入驗證與過濾:從黑名單過濾到白名單驗證的正確姿勢
為什麼黑名單過濾不可靠? 嘗試列舉所有「危險字符」(單引號、分號、<script>、SQL 關鍵字等)屬於黑名單策略,存在三大缺陷: 繞過變體無窮
PHP open_basedir 安全機制深度解析:繞過風險與配置最佳實踐
open_basedir 核心機制 open_basedir 限制 PHP 腳本可存取的檔案系統路徑,不受 safe_mode 影響。其運作流程: 腳本嘗試開
PHP 驗證碼實作指南:從簡單圖形驗證到現代無感驗證
驗證碼演進與選型建議 類型安全性使用者體驗適用場景 傳統圖形驗證碼低(易被 OCR/機器學習破解)差(需人工輸入)低風險表單、內部系統 滑塊/點選/旋轉
PHP 加密擴展選擇指南:從 Mcrypt 遷移至 OpenSSL 與 Sodium
Mcrypt 現狀:已棄用並移除 Mcrypt 擴展自 PHP 7.1 起標記為棄用,PHP 7.2 正式移除。舊專案若仍使用 mcrypt_* 函數,必須規劃
PHP 伺服器端安全配置指南:php.ini 關鍵設定與現代最佳實踐
前言 PHP 應用安全不僅取決於程式碼撰寫品質,伺服器層面的 php.ini 配置同樣關鍵。本文整理核心安全設定,並標註已棄用/移除的舊指令,協助建立符合現代標
PHP 防止 SQL 注入:從字串過濾到預處理語句的正確演進
為什麼單純的字串過濾不夠用? 早期 PHP 開發常見使用 str_replace()、preg_replace() 或自訂函數過濾「危險字符」(如單引號、分號、
PHP 5.5 密碼雜湊 API 完整指南:建立、驗證與重新雜湊
前言 PHP 5.5 引入了專門的密碼雜湊 API,提供四個核心函數:password_hash()、password_verify()、password_ne
PHP 防禦 DDoS 攻擊實戰指南:從程式碼層到架構層完整防護
前言 DDoS(分散式阻斷服務)攻擊旨在耗盡伺服器資源(頻寬、CPU、記憶體、連接數),導致正常服務不可用。PHP 應用層面雖無法完全阻擋大流量攻擊(需網路/基
PHP Webshell 掃描器實戰:基於正則特徵庫的後門檢測與清理工具
工具定位與使用場景 本掃描器適用於**應急響應階段**的快速排查,透過預定義的惡意程式碼特徵正則,遞迴掃描網站目錄下的 PHP/Inc/Phtml 等腳本檔案,
PHP 進階驗證碼生成:帶背景圖片、干擾線、干擾點的高強度圖形驗證碼三種實現
為什麼需要更強的驗證碼? 簡單的純色背景驗證碼極易被 OCR(光學字元識別)自動破解。引入**背景圖片、隨機干擾線、干擾點、字元扭曲旋轉**等手段,可大幅提高機