我正在尝试将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
,如果这会有所不同。
答案 0 :(得分:0)
看起来PHP存储的字符串的内部长度设置为12,但实际的字符串要长得多(可能是null终止)。这可能是一种潜在的攻击吗?