PHP5.4中刪除的安全函數

前幾天配置PHP5.4的時候發現PHP新版已經在一些安全函數方面進行了增改,從php自身防止一些不必要的漏洞,因此開發人員在寫代碼時也需要注意版本的兼容。下面講幾個涉及安全方面的函數進行說明。


1、safe_mode
狀態:已刪除
描述:此函數主要限制系統相關的文件打開、命令執行等函數(具體影響函數見參考1)。當然現在也有bypasss safe_mode的方法(見參考2),通過com接口來繞過。
解決辦法:可以通過配置php.ini中的disable_functions函數列表進行限制指定函數。

2、magic_quotes_gpc
狀態:已刪除 (magic_quotes_runtime、magic_quotes_sybase 刪除)
描述:此函數在PHP <= 4.2.3默認開,會自動對GPC (Get/Post/Cookie)提交的值中的’, “, 和空格進行轉義,PHP5.4中get_magic_quotes_gpc()默認返回false。
解決辦法:基本上還是不受影響,先檢測狀態,然後採用mysql_real_escape_string進行轉義處理。

3、register_globals
狀態:已刪除
描述:此函數雖然從PHP>>4.2開始默認由on改爲off,但是如果程序員開啓的話會導致變量覆蓋等安全問題,特別是結合文件包含漏洞等。
解決辦法:可以結合前面sablog源碼中的函數進行改寫(採用extract函數).

4、session_register
狀態:已刪除(session_unregister()、session_is_registered 刪除)
描述:採用session認證的時候可以用該函數註冊session變量。
解決辦法:採用$_SESSION數組進行註冊變量。

參考:
http://hi.baidu.com/zhangguanshi/blog/item/0a5bf51771a54e42f3de32d1.html
http://luoq.net/PHP-COM-functions/

http://php.net/releases/5_4_0.php


轉自:http://blog.ourren.com/2012/03/13/php5.4_remove_safe-function.html

發佈了83 篇原創文章 · 獲贊 39 · 訪問量 70萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章