【问题标题】:Getting request header sent by Flash获取 Flash 发送的请求头
【发布时间】:2011-10-07 17:23:10
【问题描述】:

我不确定这是否可能,但我想问一下也无妨。

我在包含 Flash 应用程序的页面上有一个脚本,通过 Greasemonkey 或作为 Chrome 扩展程序。该闪存应用程序发出 POST 请求,例如www.example.com/api/request.json?var=something.

在同一页面上运行的脚本是否可以捕获 Flash 代码发送的请求标头?有点像 Tamper Data、Fiddler 等。

非常感谢,即使答案最终是否定的:)

编辑:再多一点信息可能会有所帮助。我不需要重定向或更改来自 Flash 应用程序的请求。我只是为了能够读取标题并将该信息保存在同一页面上运行的用户脚本/扩展中的变量中。

【问题讨论】:

    标签: flash firefox-addon google-chrome-extension xmlhttprequest greasemonkey


    【解决方案1】:

    如果您真的想捕获并重新路由或编辑该应用程序请求,您可以简单地进入您的主机文件(如果在 Windows 上)并运行像 xampp 这样的本地 Web 服务器来处理您机器上的请求.这本质上是完全劫持了对该服务器的请求,你可以用它做任何你想做的事情。有关如何将条目添加到主机文件的详细信息,请参阅 this

    此外,如果您需要在其他系统(如 linux 或 mac)上编辑主机条目,只需在 google 上搜索相同的概念,除了在搜索旁边添加您的操作系统名称。 :)

    【讨论】:

    • 感谢您的回答,但我确实需要从用户脚本或扩展程序中执行此操作。我可以使用 http 嗅探器手动执行此操作,但理想情况下,我想从同一页面上的用户脚本/扩展中截获从 Flash 应用程序发送的标头。我不需要以任何方式重定向或更改它。每当标题信息发生变化时,我只需要更新用户脚本/扩展中的信息。不过谢谢你的帖子。它将帮助我测试其他一些东西:)
    【解决方案2】:

    对于 GreaseMoneky,没有。

    正如他们所说的in their FAQ

    Greasemonkey 允许您将 JavaScript 代码(称为“用户脚本”)添加到任何网页,该网页将在其 HTML 代码加载后运行。 [...] 用户脚本的工作方式或多或少类似于为匹配一个或多个 glob 模式的任何 URL 自动调用的小书签。

    他们将无法像使用 FireBug 或 WireShark 那样拦截“实时”发生的事情。

    它们在 DOM 准备就绪时执行代码,然后死亡。

    更新:

    如果您需要这样做只是为了查找哪些请求被触发,而不是拦截和/或对其采取行动,您可以使用FireBug(如果您使用 Firefox)或 Chrome 的集成开发工具(按 F12)。

    【讨论】:

    • 我担心这就是答案。我希望能够拦截,以便我可以根据标题更改执行操作。如果我不能,这不是世界末日。只会让我的生活更轻松:) 感谢您的回答。
    • @runey71:那么最简单的选择(如果不是经常发生的事情)是使用某种代理,例如 PrivoxyPolipoTinyProxy
    • 感谢您的链接。我现在去看看。
    • 我检查了代理选项。这不是我真正追求的,但我再次认为我追求的是不可能的。感谢您的时间和帮助。
    【解决方案3】:

    可以使用 chrome.experimental.webRequest 扩展 API 捕获从 Flash 发送的 HTTP POST 请求标头,但如果标头是指正在发送的实际表单数据,则它不是标头的一部分(并且无法使用扩展捕获API afaik)。

    chrome.experimental.webRequest.onRequestSent.addListener(function(details) {
        console.log("Headers:", details);
    }, null,  ["requestLine", "requestHeaders"]);
    

    【讨论】:

    • 我的意思是实际的标头信息,例如 Accept 和 Referer 等。谢谢您的回答,我会仔细查看 chrome.experimental.webRequest
    • 终于有时间仔细看看chrome.experimental.webRequest 不幸的是我得到了一个错误 chrome.experimental.webRequest is not supported in content scripts 所以似乎不允许在扩展中使用它。
    • @runey71 你不能在内容脚本中使用任何 Chrome API(嗯,大部分),你需要从后台页面调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2011-11-08
    相关资源
    最近更新 更多