重写IIS服务器变量的示例

jjhzyzn0  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(83)

有没有人有一个例子,每个变量会给予什么和变量之间的差异,其中有微妙的变化,他们之间的IIS重写服务器变量。微软做了一个可怕的工作,给出的例子,使它几乎不可能弄清楚哪个变量使用的时间和地点。我相信还有其他人会从中受益。
https://learn.microsoft.com/en-us/iis/web-dev-reference/server-variables
我开始一个样本答案的变量,请采取在它的裂缝,让我们尝试建立一个全面的列表的例子,每个变量将包含什么。

ubof19bj

ubof19bj1#

第二部分
请根据您的经验和知识更新示例(如有可能,请引用源代码)
| 产品说明|实施例| EXAMPLE |
| --|--| ------------ |
| IIS网站识别码。|||
| 响应请求的IIS示例的元数据库路径。|||
| IIS网站名称。|||
| 请求传入的服务器地址。|这对于可能有多个IP地址绑定到计算机,并且您希望找出请求使用的地址的计算机非常重要。||
| 连接到Web服务器时,用户模拟的Windows帐户。|使用REMOTE_USER、UNMAPPED_REMOTE_USER或AUTH_USER查看请求标头中包含的原始用户名。只有在安装了身份验证筛选器的情况下,LOGON_USER才具有与这些其他变量不同的值。||
| 正在运行处理请求的IIS工作进程的应用程序池的托管管道模式。|||
| 客户端提供的路径信息,例如/vdir/myisapi.dll/zip。|如果此信息来自URL,则在将其传递到CGI脚本或ISAPI筛选器之前,服务器会对其进行解码。If the AllowPathInfoForScriptMappings metabase property is set to true (to support exclusive CGI functionality), PATH_INFO will only contain /zip and ISAPI applications such as ASP will break.For examplehttp://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回/content/default.aspx| For example , http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return /content/default.aspx |
| Map到PATH_INFO中的虚拟路径的物理路径。|IIS在处理ISAPI应用程序期间使用此变量。If the AllowPathInfoForScriptMappings metabase property is set to true (to support exclusive CGI functionality), PATH_INFO will only contain /zip and ISAPI applications such as ASP will break.的例如,c:\inetpub\wwwroot\vdir\myisapi.dll| For example, c:\inetpub\wwwroot\vdir\myisapi.dll |
| 查询存储在问号(?)后面的字符串中的信息|)。For examplehttp://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回tabid=2&subtabid=3| For example , http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return tabid=2&subtabid=3 |
| 发出请求的远程主机的IP地址。|||
| 发出请求的主机的名称。|如果服务器没有此信息,它将设置REMOTE_ADDR并将其留空.||
| TCP连接的客户端端口号。|||
| 在将用户名Map到Windows帐户之前,从客户端发送的授权标头派生的用户名。|如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 当前请求的物理路径。|||
| The Flags of HTTP_REQUEST.的|例如,将为HTTP/2请求设置HTTP_REQUEST_FLAG_HTTP2标志。||
| 用于发出请求的方法。|||
| URI的绝对路径部分。|For examplehttp://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回/content/default.aspx?tabid=2&subtabid=3| For example , http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return /content/default.aspx?tabid=2&subtabid=3 |
| 当前请求的物理路径。|||
| 正在执行的脚本的虚拟路径。|||
| 所请求文件的扩展长度路径(前缀为\?|\).||
| 站点绑定到的IP地址。|例如,197.223.3.2| For example, 197.223.3.2 |
| 服务器的主机名称、DNS别名或IP位址,就像它会出现在自我指涉URL中一样。|例如,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回www.contoso.com| For example, http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return www.contoso.com |
| 请求所发送到的服务器端口号。|例如,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回8080| For example, http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return 8080 |
| 包含0或1的字符串。|如果请求是在安全端口上处理的,则此值为1。否则为0。例如,如果请求是在安全端口上处理的,则此值为1,否则为0| For example, if the request is being handled on the secure port, then this is 1 , otherwise it is 0 |
| 请求信息协议的名称和修订版本。|格式为方案/版本。(HTTP_VERSION的规范化形式。)||
| 响应请求并运行网关的服务器软件的名称和版本。|格式为名称/版本。||
| 带有double encoding选项的原始未编码REQUEST_URI URL。|For example,则http://www.contoso.com:8080/content/default.aspx?tabid=2"&sub tabid=3将返回/content/default.aspx?tabid=2%22&subt%20abid=3| For example , http://www.contoso.com:8080/content/default.aspx?tabid=2"&sub tabid=3 would return /content/default.aspx?tabid=2%22&subt%20abid=3 |
| 在将用户名Map到Windows帐户(与REMOTE_USER相同)之前,从客户端发送的授权标头派生的用户名。|如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 不含任何查询字串信息的URL基底部分。|For example,则http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回/content/default.aspx| For example , http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return /content/default.aspx |

qco9c6ql

qco9c6ql2#

第一部分
请根据您的经验和知识更新示例(如有可能,请引用源代码)
| 产品说明|实施例| EXAMPLE |
| --|--| ------------ |
| 由客户端发送的所有HTTP标头。|标头以HTTP_作为前缀并大写.例如,HTTP_ACCEPT_ENCODING:gzip, deflate, br| For example, HTTP_ACCEPT_ENCODING:gzip, deflate, br |
| 客户端以原始格式发送的所有HTTP标头。|例如,Accept-Encoding: gzip, deflate, br| For example, Accept-Encoding: gzip, deflate, br |
| 应用程序的元数据库路径。|||
| 应用程序的物理路径。|||
| 临时IIS应用程序池配置的物理路径。|||
| 正在运行处理请求的IIS工作进程的应用程序池的名称。|||
| 客户端提供的密码,以使用基本身份验证进行身份验证。|||
| 服务器用于验证用户的身份验证方法。|如果AUTH_TYPE包含一个值,并且身份验证方案不是基本身份验证或集成Windows身份验证,则这并不意味着用户已通过身份验证。服务器允许它本身不支持的身份验证方案,因为ISAPI筛选器可能能够处理该特定方案。||
| 在将用户名Map到Windows帐户之前,从客户端发送的授权标头派生的用户名。|此变量与REMOTE_USER没有区别。如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 这包含了entire URL。|仅限在ISAPI应用程序中使用。返回当前URL的明确名称。有必要将此变量的Unicode版本与内核模式缓存失效函数结合使用,以收回HSE_REQ_VECTOR_SEND放入该高速缓存中的条目。For examplehttps://contoso.com:8042/vdir/default.aspx?querystring将返回|https://contoso.com:8042/vdir/default.aspx?querystringhttps://contoso.com:8042/vdir/default.aspx?querystring |
| 作为字符串返回的客户端证书的唯一ID。|这可用作整个客户端证书的签名。||
| 如果客户端证书存在,则bit 0被设置为1。|如果客户端证书的证书颁发机构无效(即,它不在服务器上可识别的证书颁发机构列表中),则bit 0设置为1。如果CERT_FLAGS的比特1设定为1,表示凭证无效,IIS 4.0版及更新的版本将会拒绝凭证。早期版本的IIS不会拒绝该证书。||
| 客户端证书的颁发者字段。|||
| SSL/TLS连接密钥大小中的位数。|||
| SSL/TLS服务器私钥中的位数。|||
| 客户端证书的序列号。|||
| 服务器证书的颁发者字段。|||
| 服务器证书的主题字段。|||
| 客户端证书的主题字段。|||
| 请求正文的长度。|||
| 请求正文的MIME类型。|与具有附加信息的查询一起使用,例如GET、POST和PUT。||
| The cryptographic cipher algorithm used to establish the connection. The hex value of the algorithm is established in the ALG_ID data type.的|例如,256位AES(CALG_AES_256)将为6610| For example, 256-bit AES(CALG_AES_256) will be 6610 |
| The hashing algorithm used for generating Message Authentication Codes (MACs). The hex value of the algorithm is established in the ALG_ID data type.的|例如,MD5(CALG_MD5)将是8003| For example, MD5(CALG_MD5) will be 8003 |
| The key-exchange algorithm used to establish the connection. The hex value of the algorithm is established in the ALG_ID data type.的|例如,椭圆曲线Diffie-Hellman密钥交换算法(CALG_ECDH)将是aa05| For example, Elliptic curve Diffie-Hellman key exchange algorithm(CALG_ECDH) will be aa05 |
| The cryptographic protocol used to establish the connection. The hex value of the protocol is established in the SecPkgContext_ConnectionInfo structure.的|例如,TLS 1.2将是400| For example, TLS 1.2 will be 400 |
| IIS网站目录的物理路径。|||
| 转发的URL。|||
| 服务器使用的CGI规范的修订版。|格式为CGI/修订版。||
| 如果请求是通过安全通道(例如SSL)传入的,则返回ON;|或者如果请求是针对不安全的通道,则返回OFF。如果请求是通过安全通道(例如SSL)传入的,则返回ON。|或者如果请求是针对不安全信道,则返回OFF。|
| SSL/TLS连接密钥大小的位数。|||
| 服务器证书私钥中的位数。|||
| 服务器证书的颁发者字段。|||
| 服务器证书的主题字段。|||
| 用于发出请求的方法。|||
| server host包括server port|例如,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3将返回www.contoso.com:8080| For example, http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3 would return www.contoso.com:8080 |
| 原始编码的URL。|例如,https://contoso.com:8042/vdir/default.aspx?querystring将返回|/vdir/default.aspx?querystring/vdir/default.aspx?querystring |
| 请求协议的名称和版本(SERVER_PROTOCOL的原始形式)。|||

相关问题