HTTP_HOST strlen错误的长度

时间:2013-10-01 17:11:29

标签: php

我正在尝试将HTTP_HOST与我失败的域名进行比较。苦苦寻找导致这种情况的原因,我试图打印它的长度。令我惊讶的是,它输出了我实际域名的长度(虽然我使用的是网络代理)。

使用strlen我会收到与此var_dump()输出相同的长度(仅显示必要内容):

["HTTP_HOST"]=>
string(12) "mydomain.com.s48.wbprx.com"
["SERVER_NAME"]=>
string(12) "mydomain.com.s48.wbprx.com"

我的原始域名被mydomain.com取代,包括字符串的长度。

我非常震惊,为什么我可以使用echo打印字符串并在整体中看到它,但是不能获得字符串长度?即使我做str_replace('.','', $str),它也会返回"mydomaincom"

如果有任何帮助我的网站也使用以下htaccess代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Removes .php
RewriteCond $1 !\.(gif|jpe?g|png|bmp)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
</IfModule>

我尝试过.php和没有。结果相同。

此结果是使用:https://incloak.com/

生成的

我的PHP版本为5.3.14,如果这会有所不同。

1 个答案:

答案 0 :(得分:0)

看起来PHP存储的字符串的内部长度设置为12,但实际的字符串要长得多(可能是null终止)。这可能是一种潜在的攻击吗?