另类过滤外国浏览者

前言

原创文章,欢迎转载,请保留出处。
有任何错误、疑问或者建议,欢迎指出。
我的邮箱:Maxwell_nc@163.com

作为一些版权网站,不希望给非本国的人浏览,通常常见的做法是采用全网过滤器过滤访问者的IP,比如典型的youku就是在浏览视频前分析访问者的IP,如果是海外用户则提示所在地区无法播放,然后记录下来。可是作为一个小公司并没有一个比较完善的IP库(可以采用第三方提供接口),而且这种做法无法避免代理浏览的问题。


缘由

前些天在浏览国外网站时发现某网站一直提示403 forbidden,理论上这种网站不需要账户登录应该不存在浏览者权限不足,当时首先怀疑是某防火墙的问题,于是采用代理浏览该网站发现还是提示403 forbidden。
在确定不是防火墙的问题后,那就要确定下是否是网站问题,十分确定的是搜索网站的爬虫能爬到页面内容,网站没有任何问题。
后来怀疑是不是被重定向了,查看请求和响应,只有403响应码。
最后还折腾了是否chrome浏览器问题,又换了IE依然无解。


解决

最后灵机一动,HTTP请求头中看到一个Accept-Language:zh-CN,心想会不会是由这个属性来判断,于是试了下把header信息修改成en-US后请求发现内容可以显示了….
这真是一种另类的过滤外国浏览者的方法,这种方法实现起来比较简单,采用网站全局过滤器,在doFilter中判断请求头里的Accept-Language是否是单一的en-US就可以了(注意不要采用contains,应该用equals),一般的浏览者或者浏览器都会设置成本地语言,采用这种方案再加上IP过滤,就可以过滤大部分人了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值