回覆列表
  • 1 # 七隻小鴨的美食家

    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這樣之第三方擴充套件軟體所相容之。

    下面是我寫的一個操作方法:

    wget -c http://soft.vpser.net/web/suhosin/suhosin-patch-5.2.10-0.9.7.patch.gz

    gzip -d ./suhosin-patch-5.2.10-0.9.7.patch.gz

    cd php-5.2.10

    patch -p 1 -i ../suhosin-patch-5.2.10-0.9.7.patch

    編譯的時候

    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin

    把suhosin編譯進去就好了

  • 中秋節和大豐收的關聯?
  • 什麼是企業精神?