前幾天配置PHP5.4的時候發(fā)現(xiàn)PHP新版已經(jīng)在一些安全函數(shù)方面進行了增改,從php自身防止一些不必要的漏洞,因此開發(fā)人員在寫代碼時也需要注意版本的兼容。下面講幾個涉及安全方面的函數(shù)進行說明。
1、safe_mode
狀態(tài):已刪除
描述:此函數(shù)主要限制系統(tǒng)相關(guān)的文件打開、命令執(zhí)行等函數(shù)(具體影響函數(shù)見參考1)。當然現(xiàn)在也有bypasss safe_mode的方法(見參考2),通過com接口來繞過。
解決辦法:可以通過配置php.ini中的disable_functions函數(shù)列表進行限制指定函數(shù)。
2、magic_quotes_gpc
狀態(tài):已刪除 (magic_quotes_runtime、magic_quotes_sybase 刪除)
描述:此函數(shù)在PHP <= 4.2.3默認開,會自動對GPC (Get/Post/Cookie)提交的值中的’, “, 和空格進行轉(zhuǎn)義,PHP5.4中g(shù)et_magic_quotes_gpc()默認返回false。
解決辦法:基本上還是不受影響,先檢測狀態(tài),然后采用mysql_real_escape_string進行轉(zhuǎn)義處理。
3、register_globals
狀態(tài):已刪除
描述:此函數(shù)雖然從PHP>>4.2開始默認由on改為off,但是如果程序員開啟的話會導致變量覆蓋等安全問題,特別是結(jié)合文件包含漏洞等。
解決辦法:可以結(jié)合前面sablog源碼中的函數(shù)進行改寫(采用extract函數(shù)).
4、session_register
狀態(tài):已刪除(session_unregister()、session_is_registered 刪除)
描述:采用session認證的時候可以用該函數(shù)注冊session變量。
解決辦法:采用$_SESSION數(shù)組進行注冊變量。
參考:
http://hi.baidu.com/zhangguanshi/blog/item/0a5bf51771a54e42f3de32d1.html
http://luoq.net/PHP-COM-functions/
http://php.net/releases/5_4_0.php
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。