屠城 发表于 2016-8-19 10:51:09

CI 2.2.6中base_url更新的原因和好处?

CI 2.2.6版本更新中,有一项是base_url的变更,
Changed Config Library method base_url() to fallback to ``$_SERVER['SERVER_ADDR']`` in order to avoid Host header injections.

更新前的代码是:


更新后的代码是:


为什么这么修改,好处是什么?

liugoe 发表于 2016-8-19 11:20:53

因为是取本地服务器,所有用SERVER_ADDR获得IP会更好一些
$_SERVER['HTTPS']是肯定存在的,只不过可能为空

liugoe 发表于 2016-8-19 11:22:49

由于 str_replace() 的替换时从左到右依次进行的,进行多重替换的时候可能会替换掉之前插入的值。

Hex 发表于 2016-8-19 14:12:34

看起来是一个安全原因。

屠城 发表于 2016-8-19 18:13:43

Hex 发表于 2016-8-19 14:12
看起来是一个安全原因。

这么改的直接结果就是必须在config.php中设置base_url,不然的话会直接跳转到localhost

Hex 发表于 2016-8-21 13:37:29

屠城 发表于 2016-8-19 18:13
这么改的直接结果就是必须在config.php中设置base_url,不然的话会直接跳转到localhost ...

对的,CI3就必须设置了,不过 config.php 也是 PHP 文件,你可以在里面写代码自动获取当前域名。

屠城 发表于 2016-8-29 15:41:48

Hex 发表于 2016-8-21 13:37
对的,CI3就必须设置了,不过 config.php 也是 PHP 文件,你可以在里面写代码自动获取当前域名。 ...

茅舍顿开
页: [1]
查看完整版本: CI 2.2.6中base_url更新的原因和好处?