日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php cgi路径解析,php.ini中的cgi.fix_pathinfo选项

發布時間:2024/9/18 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php cgi路径解析,php.ini中的cgi.fix_pathinfo选项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP里經常要獲取當前請求的URL路徑信息。一般可以通過環境變量$_SERVER[‘PATH_INFO’]獲取,而配置文件中的cgi.fix_pathinifo選項則與這個值的獲取相關。而$_SERVER[‘PATH_INFO’]中的key PATH_INFO是一個CGI 1.1的標準,經常用來做為傳遞參數給后端的CGI服務器。

被很多系統用來優化url路徑格式,比如對于很多框架,下面這個網址:

http://www.test.com/index.php/test/my.html?c=index&m=search

我們可以得到

$_SERVER[‘PATH_INFO’] = ‘/test/my.html’

$_SERVER[‘QUERY_STRING’] = ‘c=index&m=search’;

我們再說下php.ini中的配置參數cgi.fix_pathinfo,它是用來對設置cgi模式下為php是否提供絕對路徑信息或PATH_INFO信息。沒有這個參數之前PHP設置絕對路徑PATH_TRANSLATED的值為SCRIPT_FILENAME,沒有PATH_INFO值。設置cgi.fix_pathinfo=1后,cgi設置完整的路徑信息PATH_TRANSLATED的值為SCRIPT_FILENAME,并且設置PATH_INFO信息;如果設為cgi.fix_pathinfo=0則只設置絕對路徑PATH_TRANSLATED的值為SCRIPT_FILENAME。cgi.fix_pathinfo的默認值是1。

nginx默認是不會設置PATH_INFO環境變量的的值,需要通過正則匹配設置SCRIPT_FILENAME,但這樣會帶來安全隱患,需要把cgi.fix_pathinfo=0設置為0。但是一旦關閉這個這場,PHP就獲取不到PATH_INFO信息,那些依賴PATH_INFO進行URL美化的程序就失效了。

網上給出了一些方案,在關閉cgi.fix_pathinfo時使依賴PATH_INFO美化url的程序能夠正常工作。

1.可以通過rewrite方式代替php中的PATH_INFO

實例:thinkphp的pathinfo解決方案

設置URL_MODEL=2

location / {

if (!-e $request_filename){

rewrite ^/(.*)$ /index.php?s=/$1 last;

}

}

2.nginx配置文件中設置PATH_INFO值

請求的網址是/abc/index.php/abc

PATH_INFO的值是/abc

SCRIPT_FILENAME的值是$doucment_root/abc/index.php

SCRIPT_NAME /abc/index.php

舊版本的nginx使用如下方式配置

location ~ .php($|/) {

set $script $uri;

set $path_info “”;

if ($uri ~ “^(.+.php)(/.+)”) {

set $script $1;

set $path_info $2;

}

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$script;

fastcgi_param SCRIPT_NAME $script;

fastcgi_param PATH_INFO $path_info;

}

新版本的nginx也可以使用fastcgi_split_path_info指令來設置PATH_INFO,舊的方式不再推薦使用,在location段添加如下配置。

location ~ ^.+.php {

fastcgi_split_path_info ^((?U).+.php)(/?.+)$;

fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

}

通過上面的描述,我們似乎得出了一個結論:為了安全要關閉掉cgi.fix_pathinfo設置。

但是我們來看看php.ini的配置及說明

; cgi.fix_pathinfo provides real PATH_INFO/PATH_TRANSLATED support for CGI. PHP’s

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting

; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting

; of zero causes PHP to behave as before. Default is 1. You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; http://php.net/cgi.fix-pathinfo

cgi.fix_pathinfo=1

設置cgi.fix_pathinfo=1才符合cgi標準。那么有什么辦法可以在保持cgi.fx_pathinfo默認設置的情況下,保證系統安全嗎?

好消息,新版本PHP(我驗證至少PHP5已經有了這個參數)的fpm配置里新增了一個額外參數(php-fpm.d/www.conf),

security.limit_extensions = .php .php3 .php4 .php5 .php7

專門用來限制PHP腳本引擎只支持解析哪些擴展名的文件

; Limits the extensions of the main script FPM will allow to parse. This can

; prevent configuration mistakes on the web server side. You should only limit

; FPM to .php extensions to prevent malicious users to use other extensions to

; execute php code.

; Note: set an empty value to allow all extensions.

; Default Value: .php

;security.limit_extensions = .php .php3 .php4 .php5 .php7

所以在使用nginx+php-fpm時,可以不用修改系統默認的cgi. fix_pathinfo=1設置了。

總結

以上是生活随笔為你收集整理的php cgi路径解析,php.ini中的cgi.fix_pathinfo选项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品自拍小视频 | 亚洲a级在线观看 | 亚洲av无码一区东京热久久 | 香蕉视频黄色 | 99久久久无码国产精品性青椒 | 国产视频在线观看免费 | 国产一区二区色 | 黄色一级片在线看 | 国产99视频在线 | 亚洲a∨无码无在线观看 | 日狠狠 | 饥渴少妇色诱水电工 | 爱搞国产 | 成人福利在线视频 | 欧美二区在线 | 日韩99 | 欧美亚洲一区二区三区四区 | xxxx在线播放 | 日日爱669 | 性欧美ⅹxxxx极品护士 | 成人免费观看视频大全 | 美女一区 | 日本做爰三级床戏 | 欧美精品一区二区三区久久久 | 九九九国产视频 | 日本69少妇 | 深夜福利网 | 最新中文字幕免费 | 丰满肥臀噗嗤啊x99av | 91黄色免费看 | 伊人狼人综合 | 国产一区免费观看 | 日韩欧美成人一区 | 动漫精品一区二区三区 | 乱短篇艳辣500篇h文最新章节 | 亚洲第一视频在线观看 | 无码成人一区二区 | 性色tv | 牛牛在线免费视频 | 激情国产视频 | 国产剧情一区 | 青娱乐国产| 色六月婷婷| 欧美丰满熟妇xxxx | 久久精品99 | 精品国偷自产一区二区三区 | 四虎国产在线观看 | 日韩一区二区三区在线观看视频 | 中文字幕无码毛片免费看 | 在线免费黄| 欧美aa| 国产在线播放一区二区三区 | 熟妇人妻无乱码中文字幕真矢织江 | 草莓视频一区二区三区 | 国产乱码一区二区三区在线观看 | 午夜精品久久久内射近拍高清 | 久久午夜夜伦鲁鲁片 | 欧美极品少妇xxxxⅹ喷水 | 亚洲一区二区三区国产 | 黄色一级网站 | 在线免费观看不卡av | www.com色 | 偷拍亚洲色图 | 夜夜操天天 | 日本熟妇一区二区三区四区 | 亚洲国产一二三 | 久久精品国产亚洲av麻豆色欲 | 特大黑人巨人吊xxxx | 精品一区二区日韩 | 国产男女网站 | 黑森林av凹凸导航 | 伊人涩涩 | 在线免费视频一区 | 殴美毛片 | 黄瓜视频在线免费观看 | 性一交一乱一色一免费无遮挡 | 寡妇激情做爰呻吟 | 久久性片| 懂色中文一区二区在线播放 | 深夜国产福利 | 国产91精品一区二区 | 开心激情久久 | 男人女人拔萝卜视频 | 色伊人影院 | 久久精品首页 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 99久久久无码国产精品免费麻豆 | 欧美精品一区视频 | 伊人狼人影院 | 精品欧美日韩 | 精品一区91| 97视频在线播放 | 久久久久久久av | 欧美性受xxxx黑人xyx性 | 日韩一区二区在线观看 | 国产成人在线观看免费网站 | 亚洲欧美精选 | 97精品 | 青青草黄色 |