标签: http-referer

MSIE中$ _SERVER ['HTTP_REFERER'] PHP变量的替代方案

$_SERVER['HTTP_REFERER']在我的应用程序中使用了变量(使用PHP).在Firefox上面,变量很重要.但我发现这$_SERVER['HTTP_REFERER']不适用于Microsoft Internet Explorer 8.我也知道HTTP_REFERER变量不适用于MSIE8和MSIE7.

请给我你的建议,如何使用$_SERVER['HTTP_REFERER']变量摆脱MSIE7/8或是否有任何其他$_SERVER['HTTP_REFERER']变量的替代品

谢谢你的建议.

-Pravin.

php http-referer internet-explorer httprequest internet-explorer-8

14
推荐指数
1
解决办法
4万
查看次数

在嵌入式UIWebView中指定HTTP referer

在我的应用程序中,我允许用户在嵌入式UIWebView中打开外部页面.我是否可以设置与该请求一起发送的referer标头?当用户打开这些外部页面时,我希望我的应用程序获得"信誉".

iphone http-referer mobile-safari http-headers ios

14
推荐指数
1
解决办法
2万
查看次数

如何从重定向的URL获取引用者

我有一个网址

domain.com/a

重定向到

domain.com/controller/action/a .

如何在我的domain.com/controller/action/a操作中获取引荐来源(即domain.com/a)?

一种选择是将引用域添加为参数.

domain.com/controller/action/a?referral=domain.com/a .

有没有办法获得引用者而不传递旧的引用者作为参数.就像我们会得到的那样**request.referrer**.request.referrer似乎不适用于重定向的URL.

我正在使用Ruby on Rails进行开发.

http-referer ruby-on-rails http-redirect ruby-on-rails-3

14
推荐指数
2
解决办法
9931
查看次数

如果单击超链接,请使浏览器提交其他HTTP-Header

如果用户点击链接,有没有办法让webbrowser提交额外的HTTP标头?

背景:在我们的环境中,每个http请求在服务器端都有唯一的ID.请参阅https://serverfault.com/questions/797609/apache-x-request-id-like-in-heroku

如果您的Web应用程序收到http请求,我想知道之前页面是哪个页面.http referrer是不够的,因为用户可以在他的浏览器中使用多个选项卡.

我想避免将丑陋的request-id放入从浏览器发送到服务器的每个GET请求中.到目前为止,我们的网址很好.

我首选的解决方案是一些JavaScript魔术,它将当前页面的请求ID添加到下一个http请求中.

详细步骤:

  1. 浏览器访问网址http://example.com/search
  2. Web服务器接收带有请求ID 123的http请求
  3. Web服务器将URL的内容发送到浏览器(搜索页面).该页面包含某处的请求ID 123
  4. 用户搜索"foobar".
  5. Web浏览器向服务器提交http请求,并以某种方式包含先前的请求ID.
  6. Web服务器接收第二个http请求(ID 456)并且可以某种方式访问​​第一个请求(ID 123)的值.
  7. Web服务器可以将关系"123 - > 456"存储在数据库中以供以后分析.

我的目标是跟踪关系"123 - > 456".以上解决方案只是实现目标的策略.其他策略是受欢迎的.

我们使用web框架django.但AFAIK在这方面确实很重要.

用户可以在浏览器中使用多个选项卡

我详细说明了匹配解决方案的含义.来自一个用户的请求序列不能解决问题.

使用多个选项卡:

  1. 用户查看tab1中的页面A.
  2. 用户查看tab2中的页面B.
  3. 用户按照第A页到第C页的链接
  4. 用户按照页面C到页面D的链接
  5. 用户按照第B页(第2页)到第E页的链接.

我想知道看到两个序列:

A -> C -> D
Run Code Online (Sandbox Code Playgroud)

B -> E
Run Code Online (Sandbox Code Playgroud)

javascript django http-referer http

14
推荐指数
1
解决办法
3851
查看次数

ASP.NET - Response.Redirect未填充Url Referrer

我觉得我已经做了很多次了,但我不能为我的生活弄清楚出了什么问题.

Default.aspx的:

protected void Page_Load(object sender, EventArgs e)
{
   var r1 = Request.UrlReferrer; // null
   var r2 = Request.ServerVariables["HTTP_REFERRER"]; // null
}
Run Code Online (Sandbox Code Playgroud)

SingleSignOn.aspx:

protected void Page_Load(object sender, EventArgs e)
{
   Response.Redirect("/");
}
Run Code Online (Sandbox Code Playgroud)

如果我在URL中键入"/SingleSignOn.aspx",它会重定向到Default.aspx,但引用者为空.

我在这里失踪了什么?

我试图做什么(这是一个简化的例子),在任何页面上,我将有一些JavaScript来做以下事情:

window.location.replace('~/SingleSignOn.aspx');
Run Code Online (Sandbox Code Playgroud)

你猜对了,用户签名,然后重定向到主页.

但是我需要在JavaScript中构建逻辑,如果我们刚从那里出来,就不会重定向到SingleSignOn.aspx页面.

引荐来源是否仅由实际链接用户点击填充?

那怎么办呢?我不想使用QueryString,因为我不想在URL中看到它.

我能想到的唯一其他选择是Session.

请帮忙.=(

asp.net http-referer response.redirect referrer

12
推荐指数
1
解决办法
1万
查看次数

获取推荐人网址 - 来自Paypal(HTTPS)的访问者

嗨,我正在尝试获取推荐人网址,但当访问者从Paypal访问网站时,它不起作用

$ref = $_SERVER['HTTP_REFERER'];
echo $ref;
Run Code Online (Sandbox Code Playgroud)

如果访问者来自Paypal的网站,有没有一种简单的方法来获取paypal网址?

编辑和澄清: 我不打算在Paypal网站上进行任何特殊设置(包括但不限于:IPN,设置返回URL,付款数据传输或Paypal网站上的任何其他特殊设置)我只是当访问者从Paypal访问该站点时,查看是否获得URL引用,关于事务状态(如果有的话).

正如鲍勃从手册中指出的那样

$ _SERVER是一个包含标题,路径和脚本位置等信息的数组.此阵列中的>条目由Web服务器创建.无法保证每个Web服务器都能提供这些服务; 服务器可以省略一些,或提供此处未列出的其他服务器.

因此,唯一的问题是 - 如果没有在paypal网站上设置某些内容,是否有任何解决方法?

php http-referer paypal

11
推荐指数
2
解决办法
1万
查看次数

在Django测试中设置HTTP_REFERER标头

我正在开发一个Django Web应用程序,其中(除其他外)需要处理使用POST请求发送的事务状态信息.

除了支付网关支持的HTTP安全性之外,我的视图还会检查request.META['HTTP_REFERER']条目settings.py以防止有趣的业务:

if request.META.get('HTTP_REFERER', '') != settings.PAYMENT_URL and not settings.DEBUG:
    return HttpResponseForbidden('Incorrect source URL for updating payment status')
Run Code Online (Sandbox Code Playgroud)

现在我想弄清楚如何测试这种行为.

我可以很容易地产生故障; HTTP_REFERER是(可预测)None正常的页面加载:

def test_transaction_status_succeeds(self):
    response = self.client.post(reverse('transaction_status'), { ... })
    self.assertEqual(response.status_code, 403)
Run Code Online (Sandbox Code Playgroud)

但是,如何假冒成功提交?我已经尝试过HTTP_REFERER进入extra,例如 self.client.post(..., extra={'HTTP_REFERER': 'http://foo/bar'}),但这不起作用; 该视图显然仍然看到一个空白标题.

测试客户端是否支持自定义标头?如果没有解决方法吗?我正在使用Django 1.1,如果可能的话,我宁愿不升级.

django http-referer django-testing

11
推荐指数
2
解决办法
8877
查看次数

PHP - Referer重定向脚本

通常,在搜索答案时,我发现某些网站会允许您阅读他们提供的信息(例如,引用者是google.com).但是,如果您直接链接到信息,它将无法使用.

我正在寻找的是最小的PHP脚本,它将设置我选择的引用者和目的地,如下所示:

http://example.com/ref_red.php?referer=http://google.com/&end=http://example.net/
Run Code Online (Sandbox Code Playgroud)

笔记:

  • ref_red.php是我的示例中脚本的名称.
  • refererend应该接受http,https,ftp.
  • refererend可以包含任何类型的URI,例如http://end.com这样简单,或者像以下一样复杂: http://example.com/some/rr/print.pl?document=rr.

注意:根据回复中的建议,我添加此内容.该脚本本身不是完整的代理.仅最初的HTTP请求将被代理的(如图像等不后续请求)唯一目的设置的引用者.

php http-referer

10
推荐指数
1
解决办法
3万
查看次数

Url片段和Referer标头

想象一下,您所在的网页上有一个网址,其网址包含一个片段(后面的部分#),然后点击一个链接转到另一个页面.大多数浏览器会将原始页面的URL发送到Referer标头中的服务器.我想知道的是URL片段是否包含在此片段中.

我已经看到了野外的各种行为,所以这可能是浏览器特定的.有谁知道哪些浏览器做什么?HTTP规范对此有何评论?

http-referer http cross-browser fragment fragment-identifier

10
推荐指数
1
解决办法
2189
查看次数

Selenium请求的HTTP标头中缺少引荐来源

我正在用Selenium编写一些测试,并注意到,Referer标头中缺少该测试。我编写了以下最小示例,以使用https://httpbin.org/headers进行测试:

import selenium.webdriver

options = selenium.webdriver.FirefoxOptions()
options.add_argument('--headless')

profile = selenium.webdriver.FirefoxProfile()
profile.set_preference('devtools.jsonview.enabled', False)

driver = selenium.webdriver.Firefox(firefox_options=options, firefox_profile=profile)
wait = selenium.webdriver.support.ui.WebDriverWait(driver, 10)

driver.get('http://www.python.org')
assert 'Python' in driver.title

url = 'https://httpbin.org/headers'
driver.execute_script('window.location.href = "{}";'.format(url))
wait.until(lambda driver: driver.current_url == url)
print(driver.page_source)

driver.close()
Run Code Online (Sandbox Code Playgroud)

哪些打印:

<html><head><link rel="alternate stylesheet" type="text/css" href="resource://content-accessible/plaintext.css" title="Wrap Long Lines"></head><body><pre>{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate, br", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0"
  }
}
</pre></body></html>
Run Code Online (Sandbox Code Playgroud)

所以没有 …

python testing http-referer selenium http-headers

10
推荐指数
1
解决办法
783
查看次数