众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:
在IE中用javascript做跳转,比如用window.location.href = “http://www.google.com”; google无法取到浏览器请求的HTTP referrer,因为IE清空了document.referrer
而其他主流浏览器Firefox和Chrome都会保留referrer,这意味着IE又要享受“部长级”特殊待遇了:
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
} else {
location.href = url;
}
这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了,这个办法是一个国外论坛上看到的,想不起哪儿了,不过感谢作者。
分享到:
相关推荐
在网页开发中,HTTP_REFERER头信息是一个非常重要的字段,它标识了用户是从哪个页面跳转到当前页面的。...这些方法已经在IE、Firefox、Safari和Chrome等主流浏览器上经过测试,可以提供良好的兼容性。
JavaScript中的`referer`是一个关键的HTTP头部字段,它记录了用户从哪个URL访问了当前页面。这个信息对于网站分析、追踪用户来源以及了解流量来源至关重要。在JavaScript中,我们可以使用`document.referrer`来获取...
`IBrowserService`接口提供了与浏览器交互的方法,例如获取当前浏览的URL、监视导航事件等。然后,通过注册表项将BHO注册到IE,使得每次浏览器启动时都会加载这个插件。 注册BHO时,需要在`HKEY_LOCAL_MACHINE`或`...
总之,通过理解`Referer`的工作原理和不同浏览器的差异,我们可以针对特定环境编写兼容性代码,确保在IE下也能获取到用户来源页面的信息。这个例子展示了在实际开发中,对浏览器特性的理解和利用是多么重要。
获取这个东西最好的方式是js,如果在服务器端获取(PHP方法如:$_SERVER[‘HTTP_REFERER’]) 不靠谱,人家可以伪造,用js获取最好,人家很难伪造, 方法:利用js的 document.referer 方法可以准确地判断网页的真实...
### PHP 伪造IP和HTTP-REFERER的方法 #### 背景介绍 在网络环境中,IP地址和HTTP_REFERER(HTTP-REFERER)是两种常见的用于跟踪和识别用户请求的数据。其中,IP地址通常用来标识网络中的设备;而HTTP_REFERER则记录...
这个方法允许我们获取到用户发起请求时的来源页面URL,从而判断请求是否合法。 首先,让我们深入理解HTTP头部的"Referer"(有时也拼写为"Referrer")。这个字段在HTTP请求头中扮演着关键角色,它记录了用户点击链接...
referer是一个基于Javascript开发的防盗链Node.js项目,包含520个文件,其中包括170个JavaScript文件、127个Markdown文件、87个JSON文件、19个TypeScript文件、17个ESLint配置文件、17个YAML文件、12个NYCrc文件、3...
同时,`Request`对象提供了丰富的属性和方法用于处理和获取URL的不同部分,例如: - `Request.UrlReferrer`: 返回发起请求的完整URL。 - `Request.Url`: 返回当前请求的URL对象。 - `Request.Url.Authority`: 包含...
本文将详细介绍CSRF绕过Referer技巧,包括Referer防御CSRF原理、Referer防御代码编写、绕过Referer技巧和Burpsuite自动生成POC。 一、Referer防御CSRF原理 HTTP Referer是header的一部分,当浏览器向Web服务器发送...
本代码是处理android hybrid混合应用,遇到的webview 拦截 header referer 问题的解决。 场景:angular $HTTP 或者js的http请求或者其他。。webview成功拦截get 、post、delete请求,添加header,referer以及body ...
在网络安全和资源保护方面,防止未经授权的外部网站盗用服务器上的资源,如图片、视频等,是至关重要的。Nginx 提供了一个名为 ngx_http_referer_module 的模块,专门用于处理 HTTP 请求头中的 `Referer` 字段,从而...
- `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request.getHeader("Accept-Encoding")`: 获取客户端支持的编码方式。 - `...
这段代码首先创建了一个`MSXML2.XMLHTTP`对象,接着通过`setrequestheader`方法设置了Referer字段,最后发送请求。 #### PHP环境中的HTTP-REFERER伪造 PHP中伪造HTTP-REFERER同样有两种常见方式:使用cURL库和基于...
总之,解决IE9和IE8的Ajax跨域问题通常需要结合前端的代码调整和浏览器的安全设置修改,同时也需要注意其他与这些浏览器兼容性相关的问题。在实际项目中,为了提高兼容性和安全性,推荐使用现代的前端框架和库,以及...
这个来链接过去的,结果,我在火狐浏览器中,可以正确的 获取上次访问的页面,在IE6下却获取不到。后来去网上百度了一下,看到了一哥门的评 说, request.getHeader(“Referer”)要走HTTP协议才有值,也就是说要通过...