binnan 发表于 2011 年 1 月 5 日 22:20:39

http://m.dh.vc/s/tz.php

vica 发表于 2011 年 1 月 5 日 22:21:17

y 发表于 2011-1-5 21:39 static/image/common/back.gif


        mijie.sourceforge.net ( 216.34.181.96 )你的IP地址是:127.0.0.1 {:2_30:}

y 发表于 2011 年 1 月 5 日 22:32:31

回复 vica 的帖子

SF用的proxy balance,前端nginx,后端apache,取remote_addr取出了127.0.0.1............

dhdj 发表于 2011 年 1 月 6 日 02:34:32

:lol不错 ~~!

mecan 发表于 2011 年 1 月 6 日 04:03:57

感谢分享..

vica 发表于 2011 年 1 月 6 日 08:49:12

y 发表于 2011-1-5 22:32 static/image/common/back.gif
回复 vica 的帖子

SF用的proxy balance,前端nginx,后端apache,取remote_addr取出了127.0.0.1............

那说明探针取的IP有问题哦~

y 发表于 2011 年 1 月 6 日 09:11:28

回复 vica 的帖子

没问题的,对于后端的apache,对他发起请求的的确是前端的nginx,不是用户,用户ip在x-forwarded-for里,但是x-forwarded-for是可以由客户端伪造的,如果优先考虑x-forwarded-for的话,会导致安全问题。前期dz,pw获取IP的函数都是先考虑x-forwarded-for的,后来都改了

vica 发表于 2011 年 1 月 6 日 15:07:16

y 发表于 2011-1-6 09:11 static/image/common/back.gif
回复 vica 的帖子

没问题的,对于后端的apache,对他发起请求的的确是前端的nginx,不是用户,用户ip在x-for ...

嗯,懂了。
可是有那么多站点拿Nginx放前端做负载平衡,都不取x-forwarded-for的话如何获取到用户IP呢?

y 发表于 2011 年 1 月 6 日 15:55:13

回复 vica 的帖子

程序自己判断下,比如类似下面的
$_proxies=array('127.0.0.1');//前端反代地址

if ( in_array($_SERVER['REMOTE_ADDR'],$_proxies) ) {
    $_SERVER['REMOTE_ADDR']=array_shift(explode($_SERVER['X-FORWARDED-FOR'],','));
    unset($_SERVER['X-FORWARDED-FOR']);
}

q513662850 发表于 2011 年 1 月 15 日 17:46:00

哈哈 我下载了~~谢谢
页: 1 [2]
查看完整版本: 自用PHP探针