- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
注意:请务必阅读完整问题
我试图理解为什么每次请求页面时浏览器都不向我显示任何 X-Forwarded-For header
顺便说一句,这是我的请求 header 的样子
Request URL:http://localhost:3000/users/sign_in
Request Method:GET
Status Code:304 Not Modified
请求 header :
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Cookie:undefined=0; poasterapp=s%3A4faaa6b1723e7c6fbd949083532c52598652547b.sNX%2BKOEed2TEQkQN7I7K5lgpoHMRpwerKFvUegMnTVI; _minerva_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGOgphbGVydFQ6DEBjbG9zZWRGOg1AZmxhc2hlc3sGOwpJIgAGOwBUOglAbm93MEkiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--6bd89ce9d29e9bdcf56573f9a153dc663a8fe755
Host:localhost:3000
If-None-Match:"785d34e3998360353567fc710af123fb"
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36
响应头(不需要但仍然)
Cache-Control:max-age=0, private, must-revalidate
Connection:close
ETag:"785d34e3998360353567fc710af123fb"
Server:thin 1.5.0 codename Knife
Set-Cookie:_minerva_session=BAh7CEkiD3Nlc3Npb25faWQGOgZFRkkiJWEyM2Q0ZTViMWEyODBiYmFmODEwZTJhZmUwNWU5ODk5BjsAVEkiE3VzZXJfcmV0dXJuX3RvBjsARiIGL0kiEF9jc3JmX3Rva2VuBjsARkkiMUN0Uk56SXU0dUdIdzgwcFZJM3R0L2N4dlovRllTSGRrQ2o1R0VVanhIaVk9BjsARg%3D%3D--dfb3ce9f5c97463cfcd0229a133654e6cc606d98; path=/; HttpOnly
X-Request-Id:41a6f3062dc8bc36b7b3eae71dc5075d
X-Runtime:89.238257
X-UA-Compatible:IE=Edge
现在如前所述,我在请求 header 中看不到任何X-Forwarded-For
通读 wiki X-Forwarded-For 的页面让我觉得,它是由缓存服务器完成的(在我的情况下,我相信这是我的 ISP 提供商)所以我可以放心地相信 * *X-Forwarded-For** header 是在缓存服务器端(ISP 提供商)添加的东西
如果是他们是这个烦扰我那么就是
为什么? 对于在我的机器上本地运行的服务器和我访问它们的服务器来说也是如此(即 X-Forwarded-For
未出现在请求 header 中)通过像 http://localhost:3000
最佳答案
X-Forwarded-For 不是 RFC 2616 Section 5.3 中指定的标准请求 header 解决协议(protocol)标准请求 header ,它们是(如 RFC 中指定的)
为了让您的传入请求具有自定义 [X-Forwarded-For] header ,它必须由调用客户端显式添加到该请求中。为什么您没有看到该 header 的最简单解释是发送请求的客户端没有手动添加它。
棘手的是,您期望看到的 header 不是您应该期望收到的 header ,除非您的服务与调用者之间存在契约(Contract),该契约(Contract)是分开的来自 HTTP 协议(protocol),表明您应该期望在请求 header 中指定 X-Forwarded-For 值。正如其他人已经指出的那样,XFF header 通常由代理服务器或负载平衡器设置,以指示通过其代理执行操作的真正请求者是谁。
作为服务提供商,如果您要求在所有请求中设置 [X-Forwarded-For] header ,则必须在服务策略级别强制执行。如果您不想为无法识别他们使用代理 IP 屏蔽谁的代理帐户提供服务,请使用 403 Forbidden 退回他们的请求。如果您处于必须为这些请求提供服务但依赖于设置的 header 的情况,那么您将不得不想出一个自定义流程,您可以在其中传达他们的错误。
以下是 HTTP 协议(protocol)关于匿名性的说明:
Because the source of a link might be private information or mightreveal an otherwise private information source, it is stronglyrecommended that the user be able to select whether or not theReferer field is sent. For example, a browser client could have atoggle switch for browsing openly/anonymously, which wouldrespectively enable/disable the sending of Referer and Frominformation.
Clients SHOULD NOT include a Referer header field in a (non-secure)
HTTP request if the referring page was transferred with a secure
protocol.Authors of services which use the HTTP protocol SHOULD NOT use GET
based forms for the submission of sensitive data, because this will
cause this data to be encoded in the Request-URI. Many existing
servers, proxies, and user agents will log the request URI in some
place where it might be visible to third parties. Servers can use
POST-based form submission instead...Elaborate user-customized accept header fields sent in every request,in particular if these include quality values, can be used by serversas relatively reliable and long-lived user identifiers. Such useridentifiers would allow content providers to do click-trail tracking,and would allow collaborating content providers to match cross-serverclick-trails or form submissions of individual users. Note that formany users not behind a proxy, the network address of the hostrunning the user agent will also serve as a long-lived useridentifier. In environments where proxies are used to enhanceprivacy, user agents ought to be conservative in offering acceptheader configuration options to end users. As an extreme privacymeasure, proxies could filter the accept headers in relayed requests.General purpose user agents which provide a high degree of headerconfigurability SHOULD warn users about the loss of privacy which canbe involved.
就我个人而言,我会使用 401.2 退回请求,并通过 WWW-Authenticate 响应 header 将请求者路由到质询屏幕,向他们显示不允许匿名访问您网站的通知。这是一种使用 WWW-Authenticate header 的 SCSS 方式,但您似乎希望 X-Forwarded-For header 能够确认并识别真正的请求者并允许公共(public)非匿名访问为您服务。对我来说,这是一个身份验证问题。
关于http - 浏览器不显示 X-Forwarded-For header 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595921/
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!