2017-11-08 13:32:46
杨桢 |
然之在helper.class.php文件中有一个获取客户端真实IP的函数,且在签到等地方引用了这个公共函数。但是这个函数存在一个缺陷。源码如下图:
这里第二个if是在存在代理IP时适用的,如果存在X_FORWARDED_FOR,则其记录了代理过程中的所有路由ip,但是这里可能不止一个代理跳转,而且然之这个字段是有长度限制的。因此,在比如用微信内置浏览器查看网页时(必定会存在多次代理),这里会报ip长度过大的错误。我想这里程序员可能想得到的是第一个ip,也就是真实的初始ip,因此需要考虑是否有多个ip代理过程。函数修改方法如下:
|
100
1/1