【问题标题】:How to specify User Agent String (UA) - on a per request / iFrame basis?如何指定用户代理字符串 (UA) - 基于每个请求/iFrame?
【发布时间】:2011-07-08 23:03:35
【问题描述】:

是否有一种简单的方法可以为单个页面中的特定 http 请求、框架或 iFrame 指定 UA 字符串?

例如,对服务器的主要请求将来自...

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3

并且来自 iFrame 或 XHR 等的第二个请求,无论是对原始(您的)还是另一个(XSS)的请求,都会将自己标识为

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5

我意识到这可以通过无数代理机制实现......但是所有这些解决方案都涉及复杂的会话和 cookie 操作等。从直接页面作者的角度和工具箱(即 JS、页面标题、甚至服务器配置等?)

【问题讨论】:

  • 我想我在response to this question 中回答了我自己的问题“您可以使用 PHP 类,例如 Ben Alman 的简单 PHP 代理。它可以让您以各种方式重定向跨域 URL方法,包括以下方法来“更改”您的用户代理......”

标签: iframe http-headers xss user-agent xmlhttprequest


【解决方案1】:

不,网页无法更改浏览器发送的用户代理。 如果您使用 flash 发出请求,则例外。然后它会使用 flash 的用户代理。

【讨论】:

    【解决方案2】:

    在使用 JS 发送请求时可以更改用户代理。 请注意,更改它通常不是一个好主意,因为如果经过身份验证的用户突然更改用户代理字符串,防火墙/负载平衡器可能会感到困惑,并可能将其视为会话注入攻击......

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2015-03-28
    • 2011-08-05
    • 2011-07-05
    相关资源
    最近更新 更多