您的位置:首页 > 其它

另类过滤外国浏览者

2015-09-13 09:59 197 查看

前言

原创文章,欢迎转载,请保留出处。
有任何错误、疑问或者建议,欢迎指出。
我的邮箱: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过滤,就可以过滤大部分人了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: