访问ASPPHP与NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨

referer  时间:2021-02-25  阅读:()

ASP,PHP与.NET伪造HTTP-REFER ER方法及防止伪造R EFERE R方法探讨

2007-08-15 14:47HTT P-REFER ER这个变量已经越来越不可靠了完全就是可以伪造出来的东东。

以下是伪造方法

ASP:dim httpset http=serve r.creat eobje ct("MSXML 2.XMLHT TP") '//MSXML 2.serve rXMLHTTP也可以Http.open "GET",url,false

Http. setRe quest Heade r"Refer er", "http://www.dc9.cn/"

Http. send()

PHP(前提是装了curl) :

$ch = curl_init() ;curl_setop t ($ch, CURLO PT_UR L, "http://www.dc9.cn/xxx.asp") ;curl_setop t ($ch, CURLO PT_RE FERER, "http://www.dc9.cn/") ;curl_exec ($ch) ;curl_close ($ch) ;

PHP(不装cur l用soc k)

$serve r= 'www.dc9.cn' ;

$ho s t = 'www.dc9.cn' ;

$targe t = '/xxx.asp' ;

$refer er = 'http://www.dc9.cn/' ; // Refer er

$port = 80;

$fp = fsock open($serve r, $port, $errno, $errst r, 30) ;if (!$fp)

{echo "$errst r ($errno)<br />\n";

}else

{

$out = "GET $targe t HTTP/1. 1\r\n";

$out .= "Host: $host\r\n";

$out .= "Cooki e: ASPSE SSION IDSQT BQSDA=DFCAP KLBBF ICDAF MHNKI GKEG\r\n";

$out .= "Refer er: $referer\r\n";

$out .= "Conne ction : Close\r\n\r\n";fwrit e($fp, $out) ;while (!feof($fp) )

{echo fgets ($fp, 128) ;

}fclos e($fp) ;

}

VB.NET/C#.NET

Dim oXMLH ttp As MSXML 2.XMLHT TP30 = New MSXML 2.XMLHT TP30()

或者

MSXML 2.XMLHT TP30 oXMLH ttp = new MSXML 2.XMLHT TP30() ;oXMLH ttp.open(. . . .oXMLH ttp. setRe quest Heade r(. . .oXMLH ttp. send(. .javas criptxmlHt tp. setRe quest Heade r("Refer er", "http://URL") ;//???呵呵~假的~

JS不支持^_^

原理都是s ock构造http头来send data。其他语言什么的比如p erl也可以,

目前比较简单的防御伪造refe rer的方法是用验证码Sessi on。

现在有一些能防盗链软件的商业公司比如UUDOG linkgate Virtu alWal l什么的都是开发的应用于IIS上面的dll。

有的是采用cooki es验证、线程控制有的是能随机生成文件名然后做U RL重写。有的方法能的确达到不错的效果.

不过道高一尺魔高一丈这些雕虫小技终归是有破解方法的。

======================================================

? FeedB urner不认我的F eed了Ubuntu从源升级的一点心得?HTTP Refer er二三事授权方式署名非商业用途保持一致转载时请务必以超链接 (http://www.fwo l f.com/blog/post/320)的形式标明文章原始出处和作者信息及本声明。什么是HTTPReferer简言之HTTP Refer er是he ader的一部分 当浏览器向web服务器发送请求的时候一般会带上Refer er告诉服务器我是从哪个页面链接过来的服务器籍此可以获得一些信息用于处理。 比如从我主页上链接到一个朋友那里他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

Refer er其实应该是英文单词Refe rrer不过拼错的人太多了所以编写标准的人也就将错就错了 。

我的问题

我刚刚把f eed阅读器改变为G regar ius但他不像我以前用的l ifere a访问新浪博客的时候无法显示其中的图片提示“此图片仅限于新浪博客用户交流与沟通”我知道这就是HT TP Refer er导致的。

由于我上网客户端配置的特殊性首先怀疑是 squid的问题但通过实验排除了不过同时发现了一个Squid和Tor、 Privoxy协同使用的隐私泄露问题 留待以后研究。

Grega rius能处理这个问题么

答案是否定的因为Gre gariu s只是负责输出htm l代码而对图像的访问是有客户端浏览器向服务器请求的。

不过安装个fi refox扩展也许能解决问题文中推荐的”Send Refer rer”我没有找到但发现另外一个可用的 ” RefCo ntrol “可以根据访问网站的不同控制使用不同的Referer。

但是我不喜欢用Fir efox扩展来解决问题 因为我觉得他效率太低所以我用更好的方式——Privoxy。

Privoxy真棒

在Priv oxy的defaul t.action中添加两行

{+hide-refer er{forge}}

.album.sina.com.cn

这样Gre gariu s中新浪博客的图片就出来了吧 +hide-referer是Pr ivoxy的一个过滤器设置访问时对HTTP Refer er的处理方式后面的fo rge代表用访问地址当作Ref ere的还可以换成block代表取消R efere r或者直接把需要用的R efere r网址写在这里。用Priv oxy比用Firef ox简单的多赶紧换吧。

From https to http

我还发现从一个ht tps页面上的链接访问到一个非加密的ht tp页面的时候在http页面上是检查不到HTTPRefer er的 比如当我点击自己的h ttps页面下面的w3cxhtml验证图标网址为ht tp://validator.w3.org/check?uri=refer er 从来都无法完成校验提示No Refer er heade r found !

原来在http协议的rf c文档中有定义

15. 1.3 Encod ing Sensi tive Information in URI' s

. . .

Clien ts SHOULDNOT include a Referer header field in a (non-secure)

HTTP reque st if the referring page was trans ferre dwith a secur eproto col.

这样是出于安全的考虑访问非加密页时如果来源是加密页客户端不发送Refe rer IE一直都是这样实现的 Firef ox浏览器也不例外。但这并不影响从加密页到加密页的访问。Firef ox中关于Referer的设置

都在里有两个键值netwo rk.http. sendR efere rHead er (defau lt=2)

设置Ref erer的发送方式 0为完全不发送 1为只在点击链接时发送在访问页面中的图像什么的时候不发送 2为始终发送。参见Privacy Tip #3: Block RefererHeaders inFirefoxnetwo rk.http. sendS ecure XSite Refer rer (defau lt=true)

设置从一个加密页访问到另外一个加密页的时候是否发送Refer er true为发送 false为不发送。

利用Ref erer防止图片盗链

虽然Ref erer并不可靠但用来防止图片盗链还是足够的毕竟不是每个人都会修改客户端的配置。实现一般都是通过ap ache的配置文件首先设置允许访问的地址标记下来#只允许来自 domai n.com的访问 图片可能就放置在do main.com网站的页面上

SetEn vIfNo Case Refer er "^http://www.domai n.com/" local_ref

#直接通过地址访问

SetEn vIf Referer "^$" local_ref

然后再规定被标记了的访问才被允许

<FilesMatch ". (gif|jpg)">

Order Allow,Deny

Allow from env=local_ref

</Files Match>

或者

<Direc tory /web/image s>

Order Deny,Allow

Deny from all

Allow from env=local_ref

</Direc tory>

这方面的文章网上很多参考

Apach e下防止盗链的解决办法

Apach e的环境变量设置

配置Apach e实现禁止图片盗链

不要使用R erfer er的地方

不要把Re rfere r用在身份验证或者其他非常重要的检查上因为Rer ferer非常容易在客户端被改变不管是通过上面介绍的Firef ox扩展或者是Pr ivoxy甚至是li bcurl的调用所以Rer ferer数据非常之不可信。

如果你想限制用户必须从某个入口页面访问的话与其使用Referer不如使用session在入口页面写入ses sion然后在其他页面检查如果用户没有访问过入口页面那么对应的sessi on就不存在参见这里的讨论。不过和上面说的一样也不要过于相信这种方式的“验证”结果。

个人感觉现在Rerf erer除了用在防盗链其他用途最多的就是访问统计 比如统计用户都是从哪里的链接访问过来的等等。

CloudCone(1.99美元),可以额外选择Voxility高防IP

CloudCone 商家也是比较有特点的,和我们熟悉的DO、Vultr、Linode商家均是可以随时删除机器开通的小时计费模式。这个对于有需要短租服务器的来说是比较有性价比的。但是,他们还有一个缺点就是机房比较少,不同于上面几个小时计费服务商可以有多机房可选,如果有这个多机房方案的话,应该更有特点。这次我们可以看到CloudCone闪购活动提供洛杉矶三个促销方案,低至月付1.99美元。商家也可以随...

ProfitServer$34.56/年,西班牙vps、荷兰vps、德国vps/不限制流量/支持自定义ISO

profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...

CYUN(29元/月)美国、香港、台湾、日本、韩国CN2,续费原价

关于CYUN商家在之前有介绍过一次,CYUN是香港蓝米数据有限公司旗下的云计算服务品牌,和蓝米云、蓝米主机等同属该公司。商家主要是为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。目前,CYUN主要运营美国、香港、台湾、日本、韩国CN2线路产品,包括云服务器、站群服务器和独立服务器等。这次看到CYUN夏季优惠活动发布了,依然是熟悉的...

referer为你推荐
discuznt请问谁有Discuz!NT的QQ群?查看端口怎么查主机IP和网络端口?吴晓波频道买粉罗辑思维,晓松奇谈,鸿观,吴晓波频道,财经郎眼哪个更有深度公章制作如何用photoshop制作公章数码资源网安卓有没有可以离线刷题的软件?iphone越狱后怎么恢复苹果越狱后如何恢复网易公开课怎么下载如何将网易公开课下载到电脑上?xv播放器下载求手机可以看xv格式的视频播放器qq空间打扮QQ空间怎么打扮如何打扮创维云电视功能很喜欢创维云电视,它到底有哪些独特功能?
php空间租用 如何查询ip地址 花生壳免费域名申请 如何注册中文域名 uk2 vmsnap3 网盘申请 免费smtp服务器 合租空间 美国在线代理服务器 qq金券 大化网 hosts文件修改 so域名 iptables koss耳机 最好的空间日志 文件服务器硬件配置 电脑主机很响 防盗报警主机 更多