我需要删除或忽略X-Frame-Options头。我应该使用代理吗?

问题描述 投票:0回答:1

前提是

我需要一个方法来移除 X-Frame-Options 的响应中的头。a 少数 网站 在这些答复到达之前 我的浏览器.

我这样做是为了能正确地呈现出 我的定制亭网页,其中有 iframe的网站,指向 不想出现在框架中.

我试过的

我已经尝试使用 squid 并配置其 reply_header_access 选择 deny X-Frame-Options 头文件,但由于某些原因,没有达到预期的效果。我已经验证了我确实是通过Squid代理,而且我也验证了我的服务器上的 X-Frame-Options 头部持续存在,尽管我 squid.conf 的文件,包含以下内容。

reply_header_access X-Frame-Options deny all

并建立了 squid (在我的Mac上使用Homebrew),并使用 --enable-http-violations 选项。

在追问了很多这种方法可能存在的问题后,我决定 reply_header_access 选项一定不是像我想象的那样(在返回客户端之前修改头文件)。

所以,我尝试使用另一个代理服务器。在阅读了 一个Stack Overflow问题 问及与我的情况大致相似的情况,我决定我可以尝试使用 node-http-proxy 库。然而,我以前从来没有使用过Node,所以我很快就迷失了方向,现在我不知道如何实现我的特定目的的库。

疑问

使用Node似乎是一个潜在的非常简单的解决方案,那么我如何使用Node设置一个代理,以去除 X-Frame-Options 头部从响应中移除?

或者,为什么Squid没有删除头,即使我试图设置它这样做?

最后一个选择。有没有一种更简单的方法来达到我的最终目标 在响应中呈现任何我想要的页面?iframe?

node.js iframe proxy http-headers squid
1个回答
0
投票

我使用了一个代理,特别是 仿真代理 用下面的脚本。

import mitmproxy

def requestheaders(flow: mitmproxy.http.HTTPFlow) -> None:
    for each_key in flow.request.headers:
        if each_key.casefold().startswith("sec-".casefold()):
            flow.request.headers.pop(each_key)

def responseheaders(flow: mitmproxy.http.HTTPFlow) -> None:
    if "x-frame-options" in flow.response.headers:
        flow.response.headers.pop("x-frame-options")
    if "content-security-policy" in flow.response.headers:
        flow.response.headers.pop("content-security-policy")
© www.soinside.com 2019 - 2024. All rights reserved.