避免自動輸入這一方法收效甚微,對許多攻擊類型起不到任何防范作用。
如果啟用 magic_quotes_gpc 和 magic_quotes_runtime 配置選項,它們會導致 PHP 自動轉義輸入中所有的 '(單引號)、"(雙引號), \(斜杠)及 NUL 字符,輸入內容可通過 Web(GET、POST、以及 Cookie 或 GPC)和其他輸入源(數據庫、file system 等或運行時環境)分別讀取。這種在服務器級別執行輸入驗證的做法非常軟弱無力,難以防范 SQL injection 類型的攻擊(盡管它就是被設計成針對這種漏洞提供保護的),對于那些針對 Web 應用程序發起的其他攻擊更沒有任何防范作用。正是由于認識到它們的不足之處,從 PHP 6 開始已經棄用并刪除了這兩個選項。
[1] Standards Mapping - OWASP Top 10 2004 - (OWASP 2004) A10 Insecure Configuration Management
[2] Standards Mapping - OWASP Top 10 2010 - (OWASP 2010) A6 Security Misconfiguration
[3] Standards Mapping - FIPS200 - (FISMA) CM
[4] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 20
[5] Standards Mapping - SANS Top 25 2009 - (SANS 2009) Insecure Interaction - CWE ID 020
[6] M. Achour et al. PHP Manual
[7] PHP Security Consortium PhpSecInfo Test Information
[8] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.10