流量统计器如何鉴别C#:WebBrowser中伪造referer


Posted in Javascript onJanuary 07, 2015

使用webbrowser伪造referer的方法:webBrowser1.Navigate(url, "_self", null, "Referer:http://www.xxx.com")

这段时间一直研究怎么才能在 webbrowser中设置referer来路来伪造来路进行刷流量,可是最后研究了半个月最终以失败告终,因为现在的统计代码,比较实际的就是cnzz.com和google adsense自带的统计,他们的统计都是通过js文件进行统计的,这样就形成了伪造来路的不成功,具体为什么不成功就让下面的一篇文章说明吧!

众所周知,服务器端的referer来路是可以伪造的,无论是ASP、PHP还是其他脚本都是可以伪造referer的,一些下载软件更是把referer伪造的惟妙惟肖,利用webbrowser控件可以方便的伪造来路。那么,作为保护网站的守门人,它如何防止这些伪造的referer呢?

这里,利用的是 Javascript 这一利器。

上面提到的伪造referer的方法都是通过服务器端的脚本来实现的,但它们并不能欺骗客户端。而JS是在客户端执行的,它并不会理会服务器端的headers信息,所以,利用js的 document.referer 方法可以准确地判断网页的真实来路。

几乎所有的第三方统计不约而同地采用了 document.referer 来判断来路,为什么?正是基于 js 下的 referer来路 是不可伪造的。即使在服务器端成功地伪造了referer的网页脚本,在第三方统计里也是无法被统计到的,原因正是由于这些三方统计采用了 document.referer 来判别真实的来路。

所以,为了对抗虚假的 referer 伪造信息,统计代码需要利用 js 的 document.referer 来判别,就可以将伪造的信息拒之门外 。

据目前所知,到目前为止,js下是无法伪造 referer 的。

那么有人问了,如果客户端把JAVASCRIPT脚步甚至cookies关闭了,你还怎么判断这个referer?其实答案也很简单,就是 js 和 asp/php 脚本之间通过 操作cookies 这个中间桥梁来实现,js里把这个referer写入cookies,asp/php读取这个cookies,如果读取不到这个cookies,则判断非本站来路。

Javascript 相关文章推荐
js innerHTML 的一些问题的解决方法
Jun 22 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
JavaScript定义类的几种方式总结
Jan 06 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
JavaScript动态添加css样式和script标签
Jul 19 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 #Javascript
jQuery中children()方法用法实例
Jan 07 #Javascript
angular.element方法汇总
Jan 07 #Javascript
jQuery中slice()方法用法实例
Jan 07 #Javascript
angularJS中$apply()方法详解
Jan 07 #Javascript
jQuery中not()方法用法实例
Jan 06 #Javascript
jQuery中has()方法用法实例
Jan 06 #Javascript
You might like
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
php 时间计算问题小结
2009/01/04 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
PHP中常用的转义函数
2014/02/28 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
js实现选项卡效果
2020/03/07 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
跟老齐学Python之用Python计算
2014/09/12 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
苹果台湾官网:Apple台湾
2019/01/05 全球购物
枚举与#define宏的区别
2014/04/30 面试题
Delphi笔试题
2016/11/14 面试题
汽修专业学生自我鉴定
2013/11/16 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
初中家长评语和期望
2014/12/26 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
JVM钩子函数的使用场景详解
2021/08/23 Java/Android