流量统计器如何鉴别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,则判断非本站来路。
相关推荐
-
C#实现统计字数功能的方法
本文实例讲述了C#实现统计字数功能的方法.分享给大家供大家参考.具体如下: 1.程序效果示例如下: 2.程序控件用法: 3.程序代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tas
-
C#统计C、C++及C#程序代码行数的方法
本文实例讲述了C#统计C.C++及C#程序代码行数的方法.分享给大家供大家参考.具体如下: 本文中的两个函数 1)用于统计扩展名为 .h .c .cpp .cs 文件的代码行数 public static int LinesOfCode(string filename) 2)用于递归统计一个文件夹内所有扩展名为 .h .c .cpp .cs 文件的代码行数 public static int LinesOfFolder(string foldername) 一.什么样的情况算一行代码 需要注意如
-
C#统计字符串里中文汉字个数的方法
如何从C#获取字符串中汉字的个数?C#中使用正则表达式来从字符串中判断出汉字,然后计数,从而得到字符串中的汉字个数. 先看这段代码: 复制代码 代码如下: //首先引用命名空间 using System.Text.RegularExpressions; //定义一个函数,返回字符串中的汉字个数 public static int GetHanNumFromString(string str) { int count = 0; Regex regex = new Regex(@"^
-
C#实现TCP连接信息统计的方法
本文实例讲述了C#实现TCP连接信息统计的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Netw
-
C#通过流写入一行数据到文件的方法
本文实例讲述了C#通过流写入一行数据到文件的方法.分享给大家供大家参考.具体如下: using System; using System.IO; public class WriteFileStuff { public static void Main() { FileStream fs = new FileStream("c:\\tmp\\WriteFileStuff.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWrit
-
C#统计字符串中数字个数的方法
本文实例讲述了C#统计字符串中数字个数的方法.分享给大家供大家参考.具体实现方法如下: // DigitCounter.cs // 编译时使用:/target:library using System; // 声明与 Factorial.cs 中的命名空间相同的命名空间.这样仅允许将 // 类型添加到同一个命名空间中. namespace Functions { public class DigitCount { // NumberOfDigits 静态方法计算 // 传递的字符串中数字字符的数
-
c#英文单词分类统计示例分享
复制代码 代码如下: using System;using System.Linq;namespace ConsoleApplication1{ /// <summary> /// 给出一段英文,分类统计(如:长度为4的单词有2个:time,well) /// </summary> class Program { static void Main(string[] args) { string sour
-
流量统计器如何鉴别C#:WebBrowser中伪造referer
使用webbrowser伪造referer的方法:webBrowser1.Navigate(url, "_self", null, "Referer:http://www.xxx.com") 这段时间一直研究怎么才能在 webbrowser中设置referer来路来伪造来路进行刷流量,可是最后研究了半个月最终以失败告终,因为现在的统计代码,比较实际的就是cnzz.com和google adsense自带的统计,他们的统计都是通过js文件进行统计的,这样就形成了伪造来
-
php英文单词统计器
本文实例为大家分享了英文单词统计器php 实现,供大家参考,具体内容如下 程序开始运行, 按"浏览"钮选择一个英文文档, 再按"统计 Statistics"钮, 即可得到按字母顺序列出的所有单词,及其出现的次数 用于测试的数据文档: data.txt 驱动程序:word.php output.php 和 StringTokenizer.php 是 要求在同一个文件夹中的程序 1. words_statistics_PHP.png 2. word.php <
-
[JS]点出统计器
ff 默认不让改 status opera9 测试通过 ie6 测试通过 这东西是给统计部门用的,分析用户习惯以改良网站布局. 只是写着玩的小东西,所以很多地方不太理想. save() 方法是保存记录的,没仔细做,应该再加个判断浏览器,然后决定用 img 还是 iframe,以保证 request 一定能发出去. onclick() 方法是触发事件时执行的 使用方法: 在任意页面中加入 script src="clickout.js"></script> 最好是
-
利用Java简单实现一个代码行数统计器方法实例
前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! package InOutStream; import java.util.* ; import java.io.* ; class codeCount { private static int count ; //统计总行数 private static int countCPP ;//CPP priva
-
C#清除WebBrowser中Cookie缓存的方法
本文实例讲述了C#清除WebBrowser中Cookie缓存的方法.分享给大家供大家参考,具体如下: 最近用C#写一个程序,用一个窗体中的WebBrowser来登陆网站,但是WebBrowser有cookie缓存,第二次登陆的时候WebBrowser仍然是第一次登陆后的状态,所以要清除WebBrowser的cookie缓存. 在stackoverflow上找到一段可用的代码: [DllImport("wininet.dll", CharSet = System.Runtime.Inte
-
使用 Python 实现微信群友统计器的思路详解
基于微信可以做很多有意思的练手项目,看了这张速查表你就会发现,可以做的事情超过你的想象. 有一次我想要统计微信群里哪些同学在北京,但发现直接问是很难得到准确结果的-- 这时候不如运用 wxpy 这个库抓取所有群友的地区信息,很快就可以得到想要的结果,甚至还精确到了区. 下面来分享一下这个微信群友统计器的实现思路,你可以基于它去拓展更多实用功能. 实现思路 解决复杂问题最好的办法就是把问题简单化,拆解成若干个小问题,然后逐个击破.问题的拆解思路如下: ▍1. 如何通过 wxpy 库找到指定微信群?
-
python实现python代码统计器
本文实例为大家分享了python中的代码行数统计,供大家参考,具体内容如下 思路:统计文件中代码的总行数减去空行单行注释以及多行注释 功能: 1.获取文件内容的总行数 2.排除空行 单行注释 多行注释 def code_statistics(path): # # 打开这个文件 with open(path, 'r', encoding='utf-8') as openFile: # 按列读取 fileline = openFile.readlines() # 给非代码行一个变量 i = 0 #
-
python实现代码统计器
本文实例为大家分享了python中的代码行数统计,供大家参考,具体内容如下 思路:统计文件中代码的总行数减去空行单行注释以及多行注释 功能: 1.获取文件内容的总行数 2.排除空行 单行注释 多行注释 def code_statistics(path): # # 打开这个文件 with open(path, 'r', encoding='utf-8') as openFile: # 按列读取 fileline = openFile.readlines() # 给非代码行一个变量 i = 0 #
-
使用JavaScript和C#中获得referer
1. JavaScript 复制代码 代码如下: /** * 获取HTTP请求的Referer * @ishost 布尔类型 Referer为空时是否返回Host(网站首页地址) */ function get_http_referer(ishost) { if (ishost === undefined) { ishost = true; } if (document.referrer) { return document.referrer; }
-
在Django框架中伪造捕捉到的URLconf值的方法
比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL. 这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉. 例如,你可能有一个显示某一个特定日子的某些数据的应用,URL类似这样的: /mydata/jan/01/ /mydata/jan/02/ /mydata/jan/03/ # ... /mydata/dec/30/ /mydata/dec/31/ 这太简单了,你可以在一个URLconf中捕捉这些值,像这样(使用命名组的方法): u
随机推荐
- JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
- oracle 使用递归的性能提示测试对比
- iOS开发中UISwitch按钮的使用方法简介
- Java获取汉字对应的拼音(全拼或首字母)
- 在ASP.NET中实现多文件上传的方法
- ASP.NET实现进度条效果
- 奉献出一个封装的curl函数 便于调用(抓数据专用)
- PHP URL地址获取函数代码(端口等) 推荐
- PHP类中的魔术方法(Magic Method)简明总结
- Vue中建立全局引用或者全局命令的方法
- MySQL MyISAM 优化设置点滴
- Javascript连接Access数据库完整实例
- 纯JS实现可拖拽表单的简单实例
- 国外的为初学者写的JavaScript教程
- Core Java 简单谈谈HashSet(推荐)
- jQuery回调函数的定义及用法实例
- linux 系统调用与标准库调用的区别详细解析
- 十万美元的悬赏 互联网梅森素数大搜索
- Java基于socket编程相关知识解析
- Android使用PullToRefresh完成ListView下拉刷新和左滑删除功能