关于使用机器名称访问进出现domain denied的问题

2016-04-07 09:57:32
sinfee
  • 访问次数: 15
  • 注册日期: 2014-12-06
  • 最后登录: 2021-12-23
  • 我的积分: 239
  • 门派等级: 玄清 等级1 居士

专业和开源版本,8.13/5.1.3

用IP地址或是域名访问时正常,使用机器名称时访问时出现domain denied

如机器名称叫myserver,IP地址为192.168.1.10

访问方式:http://192.168.1.10/zentao正常

http://myserver/zentao 拒绝

大致定位了一下在framework/base/helper.class.php(534tf )里有个函数getSiteCode($domain) 


沙发
2016-04-07 09:58:03
sinfee
  • 访问次数: 15
  • 注册日期: 2014-12-06
  • 最后登录: 2021-12-23
  • 我的积分: 239
  • 门派等级: 玄清 等级1 居士

函数中有一行

if(!preg_match('/^([a-z0-9\-_]+\.)+[a-z0-9\-]+$/', $domain)) die('domain denied');

板凳
2016-04-07 10:00:34
sinfee
  • 访问次数: 15
  • 注册日期: 2014-12-06
  • 最后登录: 2021-12-23
  • 我的积分: 239
  • 门派等级: 玄清 等级1 居士

为什么要这样做呢?

还有如果机器名称叫 my-server-01.com这样后面有行代码是把'-'替换成'_'的会不会有影响呢?

我这边的机器名称里面 都有‘-’分隔的,下一行代码可能会影响它

$domain  = str_replace('-', '_', $domain);    // Replace '-' by '_'.

#3
2016-04-07 11:42:47
春哥
  • 访问次数: 10799
  • 注册日期: 2005-04-30
  • 最后登录: 2024-05-06
  • 我的积分: 530182
  • 门派等级: 幽灵 等级7 春哥

是为了安全过滤考虑的。

建议统一一个访问入口就好了。比如用域名。

1/1 1