php是一種非常流行的網站腳本語言,但是它本身所固有的安全性是非常薄弱。本文講述了php增強計劃(hardened-php project)和新的suhosi計劃,suhosin提供了增強的php的安全配置。
php是帶有爭論地但又是最流行的一種網站腳本語言。它之所以流行,是因為它低廉的價格,然而,這低廉的價格導致用php寫的網站應用程序越來越多的同時也越來越多的展現出php本身在安全上的脆弱,這種安全特性顯示出php是極不可靠,不過同時對這個腳本語言本身而言它又是非常靈活的,使用它就能很容易的實現代碼,不過這些代碼都是臃腫的且不安全的,雖然是這樣它還是一直都擁有很多的使用者。你可以根據實際情況來假設,一次又一次,各種應用軟件都體現了這種脆弱性:容易受到sql注入、跨站腳本、任意執行指令等等的攻擊。
因為象safe_mode和open_basedir這樣內置的php安全措施將被忽略,php增強計劃創建的php更具有安全性,同時也對php進行校驗檢查。最初,這些是由增強的php補丁完成的,這些補丁需要修補并重新編譯php自身。最近,php增強計劃發布了一個名為suhosin的新工程。
sohosin包括有兩部分:第一部分是php的補丁,這個補丁強化了zend引擎自身,以免可能產生緩沖溢出,也可以防止相關的弱點。第二部分是suhosin的擴展,這是一個php的獨立使用模塊。這兩部分可以一起工作,或者是擴展部分單獨工作。
開發人員不希望為了達到安全性而總去維護他們自己的php安裝設置和他們當然更喜歡直接使用銷售商提供的linux分布系統上php,使用擴展模塊能提供更多php本身所不能具有的安全特點。
擴展模塊很容易安裝;它也能通過pecl安裝,或者是下載后通過編譯安裝:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
為了使用suhosin,還需要增加/etc/php.ini,如下所示:
extension=suhosin.so
對于大部分人來說默認的配置選項已經足夠了。為了加強設置,可以在/etc/php.ini中增加相應的值。網站中詳細地介紹了有關的各種配置選項,這些說明可以幫助你進行初始化配置。
使用suhosin,你可以得到一些錯誤日志,你能把這些日志放到系統日志中,也可以同時寫到其他任意的日志文件中去;它還可以為每一個虛擬主機創建黑名單和白名單;可以過濾get和post請求、文件上載和cookie。你還能傳送加密的會話和cookie,可以設置不能傳送的存儲上線等等。它不像原始的php強化補丁,suhosin是可以被像zend optimizer這樣的第三方擴展軟件所兼容的。
新聞熱點
疑難解答