新聞中心
我們?cè)趯W(xué)習(xí)PHP語(yǔ)言的時(shí)候也許對(duì)php.ini的相關(guān)知識(shí)還是比較陌生。那么今天我們就為新手們?cè)敿?xì)解讀php.ini的基本概念還頂級(jí)配置方法,方便我們學(xué)習(xí)PHP語(yǔ)言。我們首先來(lái)了解一些php.ini的基本概念性??瞻鬃址鸵苑痔?hào)開(kāi)始的行被簡(jiǎn)單地忽略。設(shè)置指令的格式如下:directive = value 指令名(directive)是大小寫(xiě)敏感的!所以”foo=bar”不同于”FOO=bar”。值(value)可以是:

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站開(kāi)發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、微信小程序、公眾號(hào)商城、等建站開(kāi)發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。
#t#1. 用引號(hào)界定的字符串(如:”foo”)
2. 一個(gè)數(shù)字(整數(shù)或浮點(diǎn)數(shù),如:0,1,34,-1,33.55)
3. 一個(gè)PHP常量(如:E_ALL,M_PI)
4. 一個(gè)INI常量(On,Off,none)
5. 一個(gè)表達(dá)式(如:E_ALL & ~E_NOTICE)
還有另外一個(gè)是設(shè)置布爾值,1為On就是開(kāi)啟,0為Off就是關(guān)閉。php.ini分了很多部分,例如:模塊部分,PHP全局配置,數(shù)據(jù)庫(kù)配置,等等。了解了基本的概念以后我們就可以開(kāi)始變態(tài)配置之旅。
第一個(gè)重要的參數(shù)是register_globals. 這個(gè)配置影響到PHP如何接收傳遞過(guò)來(lái)的參數(shù),說(shuō)白了register_globals的意思就是注冊(cè)為全局變量,所以當(dāng)該參數(shù)為值On的時(shí)候,傳遞過(guò)來(lái) 的值會(huì)被直接的注冊(cè)為全局變量直接使用,而當(dāng)該參數(shù)值為Off的時(shí)候,我們需要到從特定的數(shù)組里去得到它。從www.milw0rm.com很多的PHP漏洞來(lái)看一大部分是因?yàn)镽egister_Globals為On的時(shí)候被利用的,所以強(qiáng)烈推薦將這個(gè)參數(shù)修改成Off,PHP目前的最高版中此參數(shù)都是默 認(rèn)是Off的,沒(méi)啥說(shuō)的了,如果你用的版本比較老的話一定要修改這里。
第二個(gè)重要的參數(shù)是magic_quotes_gpc。如果你把magic_quotes_gpc設(shè)置成了Off,那么PHP就不會(huì)對(duì)4種字符 ‘ (單引號(hào)), ” (雙引號(hào)), (反斜線) 和 空字符進(jìn)行轉(zhuǎn)義,那這樣的話就會(huì)造成服務(wù)器可能會(huì)被非法注入的可能。但是如果你把Magic_quotes_gpc設(shè)置成On的話,PHP就會(huì) 給$_POST,$_GET,$_COOKIE提交的變量中如果有上面四種字符的話就會(huì)加上反斜扛.這樣就會(huì)大大地提高PHP的安全性。強(qiáng)烈推薦將 Magic_quotes_gpc設(shè)置為On。
第三個(gè)比較重要的是display_errors。為什么說(shuō)這個(gè)參數(shù)重要呢,因?yàn)闆](méi)有不會(huì)犯錯(cuò)誤的開(kāi)發(fā)者,PHP的 display_errors參數(shù)就是幫助開(kāi)發(fā)者定位和確定這些錯(cuò)誤的??墒侨绻鸓HP提供的這些信息被黑客了解到的話,這就不妙了。比如某國(guó)庫(kù)的網(wǎng)站,因?yàn)閷?duì)display_errors沒(méi)有進(jìn)行設(shè)置,導(dǎo)致web目錄泄露。這對(duì)于黑客來(lái)說(shuō)可是非常重要的信息,因?yàn)楹芏鄷r(shí)候的滲透都需要知道web 目錄,例如webshell的寫(xiě)入等等。所以我們強(qiáng)烈推薦大家把這個(gè)參數(shù)設(shè)置成Off。
第四個(gè)重要的參數(shù)就是safe_mode,就是我們常說(shuō)的安全模式。PHP的安全模式是個(gè)非常重要的內(nèi)嵌的安全機(jī)制,能夠控制一些PHP中的函 數(shù),比如system()等函數(shù),同時(shí)把很多文件操作函數(shù)進(jìn)行了權(quán)限控制,也不允許對(duì)某些關(guān)鍵文件的訪問(wèn),比如/etc/passwd,但是默認(rèn)的 php.ini是沒(méi)有打開(kāi)安全模式的,我們把它打開(kāi)。safe_mode = on。
第五個(gè)參數(shù)是open_basedir,使用open_basedir選項(xiàng)能夠控制PHP腳本只能訪問(wèn)指定的目錄,這樣能夠避免PHP腳本訪問(wèn) 不應(yīng)該訪問(wèn)的文件,一定程度上限制了webshell的危害,我們一般可以設(shè)置為只能訪問(wèn)網(wǎng)站目錄(假設(shè)網(wǎng)站目錄為 E:test):open_basedir = E:test 第六個(gè)參數(shù)是disable_functions,使用disable_functions可以限制一些對(duì)于系統(tǒng)來(lái)說(shuō)威脅很大的函數(shù)。
例如,我們?cè)诘谝徊糠种锌吹降挠蠵HPinfo()函數(shù)的網(wǎng)頁(yè)中可以看到關(guān)于PHP的環(huán)境變量等。還有可以利用system,exec等函數(shù)來(lái) 執(zhí)行系統(tǒng)命令等等。這里我們推薦過(guò)濾的函數(shù)如下。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。 大家如果對(duì)某個(gè)函數(shù)不了解的話,可以google搜索得到函數(shù)的作用,然后來(lái)決定您自己的服務(wù)器是否禁止掉。
第七個(gè)參數(shù)是Com組件。Windows平臺(tái)下的PHP腳本平臺(tái)存在一個(gè)安全漏洞,使得PHP設(shè)置即使在安全模式下(safe_mode),仍 舊允許攻擊者使用COM()函數(shù)來(lái)創(chuàng)建系統(tǒng)組件來(lái)執(zhí)行任意命令。漏洞出現(xiàn)的原因是由于在安全模式下的PHP平臺(tái)雖然system();pathru()函 數(shù)被禁止,但是com.allow_dcom的設(shè)置依舊是為true。以至于攻擊者可以使用COM()函數(shù)創(chuàng)建系統(tǒng)組件對(duì)象來(lái)運(yùn)行系統(tǒng)命令。
如果是默認(rèn)的Apache設(shè)置或者Web服務(wù)器以Loacalsystem權(quán)限或Administrators權(quán)限運(yùn)行,攻擊者可以使用這個(gè)漏 洞來(lái)提升權(quán)限。所以我們必須要關(guān)閉掉com.allow_dcom這個(gè)參數(shù)默認(rèn)是True,我們需要吧這個(gè)參數(shù)修改成 com.allow_dcom=false。第八個(gè)參數(shù)是expose_PHP。這個(gè)參數(shù)決定是否暴露 PHP 被安裝在服務(wù)器上。如果這個(gè)參數(shù)設(shè)置為On的話就會(huì)把PHP的版本等泄露出來(lái)了。我們的推薦值是Off。
基本上的參數(shù)我們就介紹完了,當(dāng)然php.ini還需要配置,大部分設(shè)置跟安全是沒(méi)有關(guān)系的,很大一部分都跟PHP運(yùn)行的效果(例如優(yōu)化)等有 關(guān)系,如果大家有興趣的話可以自己參考一下PHP的官方手冊(cè)來(lái)具體了解一下。注意:修改完php.ini以后,必須重新啟動(dòng)IIS,不然你設(shè)置的內(nèi)容不會(huì) 即時(shí)生效。
文章名稱:解讀php.ini的基本概念和配置方法
URL網(wǎng)址:http://www.5511xx.com/article/djscdsc.html


咨詢
建站咨詢
