我可以吗自动地根据 URL(通过正则表达式)和引用站点等标准更改/删除/添加特定的 HTTP 标头?
编辑:或者,哪个本地代理可以做到这一点,最好是免费的?
我主要对 Chrome 感兴趣,但这个问题与所有浏览器都有关。如果 Chrome 没有可用的解决方案,我可能会求助于任何有解决方案的浏览器。
我有几个网站总是保持打开状态。我决定将它们合并为一个页面,方法是将每个页面都包含在一个 iframe 中。至少有一个我使用的页面不喜欢这个想法;它显然是为了X-FRAME-OPTIONS: SAMEORIGIN
保护我免受黑帽攻击。我很感激这个举动,但我想以对我来说最有意义的方式使用他们发送给我的数据。
因此,我决定解决这个问题的最简单方法是检测我的页面是否是引荐来源(如果需要,我可以在 iframe 的查询字符串中放置一个虚拟变量)并从响应中去除 X-FRAME-OPTIONS,这样 Chrome 就不会意识到该页面想要禁用跨域嵌入。
我尝试搜索 Chrome Web Store 和 Google,但什么也没找到。肯定有办法吧?我知道 Firefox 中有实时 HTTP 标头,Chrome 中也有类似功能,但这需要我手动编辑标头。这项任务应该可以自动完成。
答案1
正如我在评论中提到的,有许多本地代理可以实现这一点。一个常见的是乌贼,一个缓存代理。波利波是另一种,显然比 Squid 更轻。还有许多其他选择,例如列出的这里。
乌贼
他们的ContentAdaptation 维基文章列出了修改流的不同方法。最简单的方法是squid.conf
配置文件,使用request_header_replace
和reply_header_replace
。如果你想彻底删除标题,你可以使用request_header_access
和reply_header_access
。
在您的例子中,您可能需要reply_header_access X-Frame-Options deny all
,这应该会删除标头。您还可以修改它以使用SAMEORIGIN
或以外的任何内容进行回复DENY
,这将允许它按照这个答案(但这是一个特殊情况,而且显然没有记录,所以最好将其删除)。
请记住,您需要使用参数/选项运行 Squid--enable-http-violations
才能使用这些选项。
您可能还希望禁用缓存功能鱿鱼
波利波
这censoredHeaders
变量接受要阻止的 HTTP 标头列表。您可以添加From, X-Frame-Options
到此列表。请参阅这里有关配置 Polipo 的说明。
在 Polipo 中没有明确的方法可以禁用缓存 - 显然它不使用内存中的缓冲区,而是始终保存到磁盘。但是,您可以通过将maxExpiresAge
、maxAge
和maxNoModifiedAge
变量设置为 0(如果 0 不起作用,也可以设置为 1)来强制它始终请求新页面。请参阅这里。
答案2
答案3
对于 Chrome,存在:忽略 X-Frame 标头. 对我来说工作得很好!
我在用着https://addons.mozilla.org/en-US/firefox/addon/modify-headers/在 Firefox 上,当我需要同样的东西时 - 需要一些最少的配置。
答案4
关于什么修改 Chrome 的标头 https://chrome.google.com/webstore/detail/modify-headers-for-google/innpjfdalfhpcoinfnehdnbkglpmogdi
例如,可以为 Akamai 缓存平台的用户添加调试标头