避免自動輸入這一方法收效甚微,對許多攻擊類型起不到任何防范作用。
如果啟用,且 magic_quotes_gpc 或 magic_quotes_runtime 同時啟用,則 magic_quotes_sybase 配置選項會用單引號而不是反斜杠對單引號進行轉義。它還會完全覆蓋 magic_quotes_gpc。在這種情況下,即使啟用 magic_quotes_gpc,無論雙引號、反斜杠還是 NUL 均不會進行轉義。
如果啟用 magic_quotes_gpc 和 magic_quotes_runtime 配置選項,它們會導致 PHP 自動轉義輸入中所有的 '(單引號)、"(雙引號), \(斜杠)及 NUL 字符,輸入內容可通過 Web(GET、POST、以及 Cookie 或 GPC)和其他輸入源(數據庫、file system 等或運行時環境)分別讀取。這種在服務器級別執行輸入驗證的做法非常軟弱無力,難以防范 SQL injection 類型的攻擊(盡管它就是被設計成針對這種漏洞提供保護的),對于那些針對 Web 應用程序發起的其他攻擊更沒有任何防范作用。正是由于認識到它們的不足之處,此功能已從 PHP 5.3.0 開始棄用并從 PHP 5.4.0 開始刪除。magic_quotes_gpc 和 magic_quotes_runtime 已從 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