解讀php.ini的基本概念和配置方法_PHP教程

來源:互聯網
上載者:User
我們在學習1. 用引號界定的字串(如:”foo”)

2. 一個數字(整數或浮點數,如:0,1,34,-1,33.55)

3. 一個PHP常量(如:E_ALL,M_PI)

4. 一個INI常量(On,Off,none)

5. 一個運算式(如:E_ALL & ~E_NOTICE)

還有另外一個是設定布爾值,1為On就是開啟,0為Off就是關閉。php.ini分了很多部分,例如:模組部分,PHP全域配置,資料庫配置,等等。瞭解了基本的概念以後我們就可以開始變態配置之旅。

第一個重要的參數是register_globals. 這個配置影響到PHP如何接收傳遞過來的參數,說白了register_globals的意思就是註冊為全域變數,所以當該參數為值On的時候,傳遞過來 的值會被直接的註冊為全域變數直接使用,而當該參數值為Off的時候,我們需要到從特定的數組裡去得到它。從www.milw0rm.com很多的PHP漏洞來看一大部分是因為Register_Globals為On的時候被利用的,所以強烈推薦將這個參數修改成Off,PHP目前的最高版中此參數都是默 認是Off的,沒啥說的了,如果你用的版本比較老的話一定要修改這裡。

第二個重要的參數是magic_quotes_gpc。如果你把magic_quotes_gpc設定成了Off,那麼PHP就不會對4種字元 ‘ (單引號), ” (雙引號), (反斜線) 和 Null 字元進行轉義,那這樣的話就會造成伺服器可能會被非法注入的可能。但是如果你把Magic_quotes_gpc設定成On的話,PHP就會 給$_POST,$_GET,$_COOKIE提交的變數中如果有上面四種字元的話就會加上反斜扛.這樣就會大大地提高PHP的安全性。強烈推薦將 Magic_quotes_gpc設定為On。

第三個比較重要的是display_errors。為什麼說這個參數重要呢,因為沒有不會犯錯誤的開發人員,PHP的 display_errors參數就是協助開發人員定位和確定這些錯誤的。可是如果PHP提供的這些資訊被駭客瞭解到的話,這就不妙了。比如某國庫的網站,因為對display_errors沒有進行設定,導致web目錄泄露。這對於駭客來說可是非常重要的資訊,因為很多時候的滲透都需要知道web 目錄,例如webshell的寫入等等。所以我們強烈推薦大家把這個參數設定成Off。

第四個重要的參數就是safe_mode,就是我們常說的安全模式。PHP的安全模式是個非常重要的內嵌的安全機制,能夠控制一些PHP中的函 數,比如system()等函數,同時把很多檔案操作函數進行了許可權控制,也不允許對某些關鍵檔案的訪問,比如/etc/passwd,但是預設的 php.ini是沒有開啟安全模式的,我們把它開啟。safe_mode = on。

第五個參數是open_basedir,使用open_basedir選項能夠控制PHP指令碼只能訪問指定的目錄,這樣能夠避免PHP指令碼訪問 不應該訪問的檔案,一定程度上限制了webshell的危害,我們一般可以設定為只能訪問網站目錄(假設網站目錄為 E:test):open_basedir = E:test 第六個參數是disable_functions,使用disable_functions可以限制一些對於系統來說威脅很大的函數。

例如,我們在第一部分中看到的有PHPinfo()函數的網頁中可以看到關於PHP的環境變數等。還有可以利用system,exec等函數來 執行系統命令等等。這裡我們推薦過濾的函數如下。disable_functions = PHPinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,

proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,

popepassthru,stream_socket_server。 大家如果對某個函數不瞭解的話,可以google搜尋得到函數的作用,然後來決定您自己的伺服器是否禁止掉。

第七個參數是Com組件。Windows平台下的PHP指令碼平台存在一個安全性漏洞,使得PHP設定即使在安全模式下(safe_mode),仍 舊允許攻擊者使用COM()函數來建立系統組件來執行任意命令。漏洞出現的原因是由於在安全模式下的PHP平台雖然system();pathru()函 數被禁止,但是com.allow_dcom的設定依舊是為true。以至於攻擊者可以使用COM()函數建立系統組件對象來運行系統命令。

如果是預設的Apache設定或者Web伺服器以Loacalsystem許可權或Administrators許可權運行,攻擊者可以使用這個漏 洞來提升許可權。所以我們必須要關閉掉com.allow_dcom這個參數預設是True,我們需要吧這個參數修改成 com.allow_dcom=false。第八個參數是expose_PHP。這個參數決定是否暴露 PHP 被安裝在伺服器上。如果這個參數設定為On的話就會把PHP的版本等泄露出來了。我們的推薦值是Off。

基本上的參數我們就介紹完了,當然php.ini還需要配置,大部分設定跟安全是沒有關係的,很大一部分都跟PHP啟動並執行效果(例如最佳化)等有 關係,如果大家有興趣的話可以自己參考一下PHP的官方手冊來具體瞭解一下。注意:修改完php.ini以後,必須重新啟動IIS,不然你設定的內容不會 即時生效。


http://www.bkjia.com/PHPjc/446345.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446345.htmlTechArticle我們在學習 1. 用引號界定的字串(如:”foo”) 2. 一個數字(整數或浮點數,如:0,1,34,-1,33.55) 3. 一個PHP常量(如:E_ALL,M_PI) 4. 一個...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.