C#:WebBrowser中伪造referer,为何对流量统计器无效?
使用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,则判断非本站来路。
转载:http://www.cnblogs.com/hackpig/archive/2010/02/14/1668236.html
相关文章
js 的 document.referer有办法伪造来路吗?
C#:WebBrowser中伪造referer,为何对流量统计器无效?的更多相关文章
- PHP伪造referer突破防盗链
php伪造referer实例代码,主要用于一些突破防盗链. 可以从这个例子中发展出很多的应用.比如隐藏真实的URL地址……嘿嘿,具体的就自己分析去吧 这里新建一个文件file.php.后面的参数就是需 ...
- 关于delphi点击webbrowser中任意一点的问题
关于delphi点击webbrowser中任意一点的问题 有时候我们需要delphi载入webbrowser1打开网页的时候 需要点击某一个点的位置 可能是坐标 可能是按钮 可能是其他的控件应该如何来 ...
- 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码
[实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...
- webBrowser中操作网页元素全攻略
原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...
- 从WebBrowser中取得Cookie 和 WebClient设置cookie!
原文:从WebBrowser中取得Cookie 和 WebClient设置cookie! 从WebBrowser中取得Cookie 的代码 CookieContainer myCookieContai ...
- JavaScript 伪造 Referer 来路方法
Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题, ...
- Vue中使用matomo进行访问流量统计的实现
Vue中使用matomo进行访问流量统计 原文链接 前言 之前做到了一个页面及接口访问流量统计的需求, 然后在网上找了很多帖子,发现有些有的但是写的都不是很详细,所以今天就整理了一下 正文 第一步 首 ...
- PHP伪造referer突破网盘禁止外链(附115源码)
新建一个文件file.php.后面的参数就是需要伪造referfer的目标地址吧.如:file.php/http://www.xxx.xxx/xxx.mp3 复制内容到剪贴板 代码: <?$ur ...
- 在JavaScript和C#中获得referer
1. JavaScript /** * 获取HTTP请求的Referer * @ishost 布尔类型 Referer为空时是否返回Host(网站首页地址) */ function get_http_ ...
随机推荐
- Python网络爬虫Scrapy框架研究
看到一个爬虫比较完整的教程.保留一下. https://github.com/yidao620c/core-scrapy
- 在html里添加视频的方法
在html里添加本地视频的方法: <!DOCTYPE HTML><html><body><video width="320" height ...
- ADB工具常用指令和使用情形分析
一.ADB常用命令:(不需要进到设备,也就是:不需要执行adb shell) adb devices 列出所有的已连接的设备 adb kill-server 关闭adb adb start-serve ...
- C# Delegate 匿名 Delegate
C#6.0新添加了 lambda的强力支持,用lambda的确可以节省好多代码,让代码看起来更简洁,更直观: 这里做一个笔记,C#的匿名委托 Demo class Program { static v ...
- 命令行导入SQL文件
摘要:把数据库导出为XX.sql格式的数据库文件,导入到另外一个数据库中的时候,总是无法全部导入.及时用mysql的命令界面导入依然是无法全部导入.老师告诉我:在命令行中运行的效率和成功率是最快和最高 ...
- p7 struct and union
struct StudentRec //①声明结构体类型StudentRec{ char StuNum[20]; //②定义结构体的成员变量 ...
- Nginx代理与负载均衡配置与优化
Nginx代理 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反 ...
- TypeScript 0.9.1 发布,新增 typeof 关键字
TypeScript 0.9.1 发布了,该版本提升了编译器和语言的性能,增加新的语言特性 typeof ,更好的 this 处理等.详细介绍请看发行说明. TypeScript 是微软新推出的一种语 ...
- ASP.NET Core 源码阅读笔记(3) ---Microsoft.AspNetCore.Hosting
有关Hosting的基础知识 Hosting是一个非常重要,但又很难翻译成中文的概念.翻译成:寄宿,大概能勉强地传达它的意思.我们知道,有一些病毒离开了活体之后就会死亡,我们把那些活体称为病毒的宿主. ...
- Jpeg2000 简介
http://www.baike.com/wiki/Jpeg2000 总结Jpeg2000的六个方面: ⑴ JPEG2000可以方便地实现渐进式传输,这是JPEG2000的重要特征之一.看到这种 ...