日常Ⅱ(3)|千与琥珀的河川

日常Ⅱ(3)

千与琥珀

开学式

平成25年(春)始业

くそ,学校明日が始まります準備ができて 明天收拾东西去学校罗,这应该算是晚的吧,幸亏有直达大巴,不然挤火车是绝对悲催的 新学期竟然开始了!我还没玩够呢!(喂   下面来调戏一下cc妹纸(大误)帮cc妹纸填下坑(赶脚cc那么天然呆且腹黑的一定是口耐的男孩子,与或是像きりの一样的妹纸喵~ >▽< 首先我们来看一下这个【传送门
从上个月开始,博客就收到了大量的垃圾评论,而且有逐渐频繁的趋势,1月28日就有6条这样的垃圾评论。忍无可忍,看到发信ip都是127.7.67.129,于是调用WordPress的黑名单功能,将127.7.67.129加入了黑名单。 不过没过多久,琥珀酱便给我发送私信称她(事实上我是♂)的评论没有显示。查看了一下评论页,发现所有人的评论都进了垃圾评论。原来从前几天开始所有人在评论页显示的ip都变成了127.7.67.129(与MySQL服务器相同,琥珀酱说应该是服务器做了反向代理),以至于无论是谁的评论都会被扔进垃圾评论。不得已,只能先暂时将这个ip移除黑名单了。
在很久之前提出问题之后测试了一下,发现openshift的东西的确用了类似cdn的反向代理,应用层与出口是分开的,并做了反向代理,所以访客的IP地址都将被记录为出口的IP地址。(竟然不是192或者是10开头的,凌乱了 虽然问题不大,当然也不会造成重大bug事件,但是还是有问题的存在。 比如说,你的访客在你的博客上评论的时候,所有的留言者的IP都是同一个!【
传送门

】那么问题就来了!(特别是能把127这个内网(本地服务器)开头的ip列入黑名单的童鞋。 并且,基于ip防御攻击和反spam的插件全部报废! 针对介个问题,我去看了下wp的说明文档,发现是通过 $_SERVER['REMOTE_ADDR']来实现的,这个服务器变量是识别“用户正在浏览当前页面的IP地址。【手册】” 貌似就是取得当前访问页请求端ip(云里雾里的),这对于反向代理来说,请求端就是代理服务器。所以我修改了一下函数,使其取得代理前的真实访客ip。
if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_X_FORWARDED_FOR"];//这串取得代理ip } else { if ($_SERVER["HTTP_CLIENT_IP"]) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CLIENT_IP"];//取客户端,及浏览器所在的电脑,的ip地址 } }
(因为要替换系统变量,而wordpress中这个变量都是在系统文件里面的,那么这段代码就要放在wordpress的公共页面上面去,对于wordpress来说wp-config.php是最不错的选择) 忽忽,坑就填到这,下回再见。

login……