這是一個由于翻譯問題引發(fā)的“血案”蝴猪。
這兩天做DVWA(不知道什么時候暗戳戳升級到v1.10)練習(xí),做到File Inclusion的high-level時急波,發(fā)現(xiàn)不能遠(yuǎn)程文件包含,一查php.ini文件,發(fā)現(xiàn)allow_url_include沒有設(shè)置為On(默認(rèn)設(shè)置為Off)冠王,再查官方文檔,發(fā)現(xiàn)是自己沒有提前修改php的配置(自己的鍋舌镶,哭著也要背QAQ)柱彻。
DVWA的README.md中說明
但是,我在DVWA的根目錄下發(fā)現(xiàn)了一個php.ini文件餐胀。
打開里面一看哟楷,發(fā)現(xiàn)里面只有這幾行,但是亮點(diǎn)在注釋:這個文件嘗試覆蓋原本的php.ini文件否灾,并不是總是有效卖擅。顯然,我這是無效的墨技。
然后就想惩阶,如果在不修改php.ini的前提下,還可以怎么樣修改allow_url_include健提。查看官方文檔琳猫,發(fā)現(xiàn)allow_url_include可修改的范圍是 PHP_INI_ALL,根據(jù)截圖私痹,可以認(rèn)為在哪都可以修改allow_url_include這個參數(shù)脐嫂。
然后決定在網(wǎng)站根目錄下的.htaccess中修改统刮。
但是發(fā)現(xiàn)然并卵,沒有用U饲А=拿伞!匀奏!執(zhí)行命令var_dump(ini_get('allow_url_include'));發(fā)現(xiàn)鞭衩,結(jié)果為string(1) "1",那就是說.htaccess并沒有起作用娃善。
又一個突然论衍,翻到php.net的英文版,看到.....赤裸裸的寫著“PHP_INI_SYSTEM”>刍恰E魈ā!這是神仙打架了嘛瘫寝?
于是乎蜒蕾,找了一條在中英文版中都是PHP_INI_ALL的配置選項
php.ini默認(rèn)不變,為128M焕阿,在.htaccess中修改為256M咪啡。然后再var_dump一下,發(fā)現(xiàn)結(jié)果是改變的暮屡。
所以撤摸,最終的結(jié)論就是allow_url_include的可配置范圍是PHP_INNI_SYSTEM,只能在php.ini或httpd.conf中修改褒纲,暫時沒有其他途徑可以修改愁溜。php中文文檔翻譯出錯了!