首頁  >  文章  >  php教程  >  用Suhosin加強PHP腳本語言安全性

用Suhosin加強PHP腳本語言安全性

黄舟
黄舟原創
2016-12-14 09:49:051287瀏覽

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

   $ 17『  $ . /configure

  $ make

  $ sudo make install

  為了使用suhosin,還需要增加/etc/php.ini,如下所示:對設定的配置㟜〜㟎〜〜.ini,如下圖🀜選項已經足夠了。為了加強設置,可以在/etc/php.ini中增加相應的值。網站中詳細地介紹了有關的各種設定選項,這些說明可以幫助你進行初始化配置。

  使用Suhosin,你可以得到一些錯誤日誌,你能把這些日誌放到系統日誌中,也可以同時寫到其他任意的日誌文件中去;它還可以為每一個虛擬主機創建黑名單和白名單;可以過濾GET和POST請求、文件上載和cookie。你還能傳送加密的會話和cookie,可以設定不能傳送的儲存上線等等。它不像原始的PHP強化補丁,Suhosin是可以被像Zend Optimizer這樣的第三方擴展軟體所兼容的 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🎀 $ sudo make install

  為了使用suhosin,還需要增加/etc/ php.ini,如下所示:

  extension=suhosin.so

  對於大部分人來說預設的設定選項已經足夠了。為了加強設置,可以在/etc/php.ini中增加相應的值。網站中詳細地介紹了有關的各種設定選項,這些說明可以幫助你進行初始化配置。

  使用Suhosin,你可以得到一些錯誤日誌,你能把這些日誌放到系統日誌中,也可以同時寫到其他任意的日誌文件中去;它還可以為每一個虛擬主機創建黑名單和白名單;可以過濾GET和POST請求、文件上載和cookie。你還能傳送加密的會話和cookie,可以設定不能傳送的儲存上線等等。它不像原始的PHP強化補丁,Suhosin是可以被像Zend Optimizer這樣的第三方擴充軟體相容的。

感謝您的閱讀 更多相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn