用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1997|回复: 6
收起左侧

[版本 2.x] CI 2.2.6中base_url更新的原因和好处?

[复制链接]
发表于 2016-8-19 10:51:09 | 显示全部楼层 |阅读模式
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.

更新前的代码是:
QQ图片20160819104650.png

更新后的代码是:
巴巴爸爸.png

为什么这么修改,好处是什么?
发表于 2016-8-19 11:20:53 | 显示全部楼层
因为是取本地服务器,所有用SERVER_ADDR获得IP会更好一些
$_SERVER['HTTPS']是肯定存在的,只不过可能为空
发表于 2016-8-19 11:22:49 | 显示全部楼层
由于 str_replace() 的替换时从左到右依次进行的,进行多重替换的时候可能会替换掉之前插入的值。
发表于 2016-8-19 14:12:34 | 显示全部楼层
看起来是一个安全原因。
 楼主| 发表于 2016-8-19 18:13:43 | 显示全部楼层
Hex 发表于 2016-8-19 14:12
看起来是一个安全原因。

这么改的直接结果就是必须在config.php中设置base_url,不然的话会直接跳转到localhost
发表于 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 文件,你可以在里面写代码自动获取当前域名。 ...

茅舍顿开

本版积分规则