我需要一个方法来移除 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
?
我使用了一个代理,特别是 仿真代理 用下面的脚本。
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")