【问题标题】:Is it possible to 'pretend' a site is a third party to test functionality if 3rd party cookies are blocked?如果第三方 cookie 被阻止,是否可以“假装”网站是第三方来测试功能?
【发布时间】:2013-05-13 20:41:21
【问题描述】:

我为一家尝试通过 iFrame 实现单点登录的公司进行自动化测试;第三方网站会将我们的页面包含在 iFrame 中,我们将进行授权。

由于 Firefox 默认关闭第 3 方 Cookie,我们不得不重新设计它的工作方式。对于手动测试,我们将页面托管在不同的域中,但是该域需要某些我们无法在代码中公开的用户名和密码,因此这很难自动化。

有没有办法让 Firefox 认为 mydomain.com 实际上不是 mydomain.com?这听起来不可能,因为如果我可以欺骗 Firefox 以为我实际上在 mydomain2.com 上,那么我可以有效地放置一个 3rd 方 cookie,但由于我是在我自己的 Firefox 实例上做的,有没有我可以在我的个人资料中更改设置以混淆它吗?

【问题讨论】:

    标签: firefox cookies selenium-webdriver


    【解决方案1】:

    是的,这非常简单,我们一直都在这样做。

    登录到测试机器(将运行浏览器的计算机)并编辑位于 c:\windows\system\drivers\etc 中的 hosts 文件

    为您希望混淆的站点添加一个条目,使用不同的域名但正确的 IP 地址。因为是不同的域,所以看起来像是第三方网站,但由于 IP 地址相同,请求实际上会发送到同一个 Web 服务器。

    例子:

    假设您的网络服务器在本地主机(地址为 127.0.0.1)上运行

    添加主机条目
    127.0.0.1   FirstPartyDomain.com
    127.0.0.1   ThirdPartyDomain.com
    

    通过http://FirstPartyDomain.com访问您的网站

    网站包含 iFrame

    <iframe src="ThirdPartyDomain.com/SetNastyCookies">
    

    iFrame 中的请求将转到同一服务器(本地主机),但在第三方站点的上下文中。

    【讨论】:

      【解决方案2】:

      使用 DNSMasq 怎么样?大多数开源路由器(例如 DD-WRT)都支持此选项。如果您需要通过 https 进行测试,您也可以在测试期间临时存储安全证书异常。

      【讨论】:

        猜你喜欢
        • 2020-06-05
        • 2021-01-10
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 2011-02-03
        • 1970-01-01
        • 1970-01-01
        • 2014-04-20
        相关资源
        最近更新 更多