请教,怎么样能有效的屏蔽小偷程序?

2014-10-26 14:27:53 +08:00
 hopestar86
现在只是简单分析访问日志,然后对远程获取的ip进行屏蔽

但是这种在php里curl很容易伪造随机访问ip

他是吧你整个网页拉取过去了,不是需要的你的某个片段,所以让他很难定位的方式行不通

他这样会增加我相同页面的重复度,进而影响排名,或者排到我前面去了
3694 次点击
所在节点    PHP
10 条回复
mengskysama
2014-10-26 14:33:25 +08:00
IP是不能伪造的,不要相信 X-FORWARD 和 X-CLIENT-IP直接在前端获取访问者IP。除非他真的有很多真实IP。
mengskysama
2014-10-26 14:35:38 +08:00
cf cdn有一个黑科技就是能够识别出浏览器UA是伪造的还是真实的。具体原理我没研究过。可能是挂载一个script请求,如果client没有正确回应就是爬虫,这样的,你也可以实现一个。
holyghost
2014-10-26 14:53:57 +08:00
伪造ip的话,网络层不救直接把包发到伪造的地址去了?。。。
jookr
2014-10-26 14:57:03 +08:00
获取IP只需要一句话,$_SERVER["REMOTE_ADDR"]这就足够了,没必要也不应该获取代理IP地址,REMOTE_ADDR是服务器和客户端握手后建立的tcp连接的数据帧里的,在应用层是无法修改的。当然,也不是绝对没有办法伪造的,IP协议可以完全自定义传输的数据,路由器这层也能伪造,但对于WEB程序员来说,是底层的东西,无法修改和伪造的。
haishan
2014-10-26 15:56:27 +08:00
现在googleappengine支持php 了
lshero
2014-10-27 01:15:43 +08:00
你的意思网站直接被反向代理了?

随机的在页面里面插入一段JS 获取当前页面的URL,并且判断这个URL的域名是不是你自己的,如果不是就强行跳转回你的网站呗。
esile
2014-10-27 12:58:12 +08:00
nginx挂前端,然后根据url来统计来访ip的次数,每天统计封停一次,包解决。
小偷程序就是图省事的,如果你天天封它ip估计它也没兴趣跟你玩。。。。
esile
2014-10-27 12:59:10 +08:00
关闭其他url的日志记录,只记录一个特定url即可,这样生成的日志小,便于统计。。。
hopestar86
2014-10-27 18:01:44 +08:00
@lshero 反向代理了可以这样解决

但是如果单纯的模拟获取你网站的内容,怎么限制,他把页面内容拉取回来后直接替换删除他不需要的
lshero
2014-10-27 18:56:29 +08:00
@hopestar86 还是统计某个IP访问的频次吧后端用 redis之类的做一个计数器 如果5分钟之内访问的次数过多,直接返回500或者404就行了,话说你不能用 REMOTE_ADDR获取IP嘛? HTTP头中的 HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR 这些随便伪造但是REMOTE_ADDR想伪造应该不好弄吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX