2014-10-06 82 views
5

我试图在Google Developer's website上所述的Google+网络登录服务器端流程略有变化。说得对,我的本地开发系统不能被设置为使用https协议我可以使用https进行本地开发吗?

Uncaught SecurityError: Blocked a frame with origin " http://my-development-system.dev " from accessing a frame with origin " https://accounts.google.com ". The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.

我是:

谷歌的GAPI代码是给这个问题?

+2

错误说你*不*使用HTTPS。你的意思是说你不想支付可信任的证书吗?您是否发现自签证书的问题? – 2014-10-06 11:26:20

+0

我使用它与Apache,但必须生成我自己的证书 – Quince 2014-10-06 11:26:37

+2

但读取错误告诉我,你根本没有使用HTTPS。 生成您的证书,配置apache使用ssl并重试。 – 2014-10-06 11:27:50

回答

0

我说

my local development system cannot be set up to use the https protocol

它可以是错误的!只需使用自我认证SSL。

1

这不仅仅是一个不同的协议(您的网站上的HTTP与accounts.google.com上的HTTPS),也是因为该域不匹配(以及该端口),该限制由Same Origin Policy强加。

此政策会阻止www.evil.com在框架集(或禁用框架的弹出窗口)中加载诸如www.bank.com的网站,然后访问DOM。如果DOM可以访问,这将是一个巨大的安全风险,因为任何网站都可以在另一个网站上读取您的私人数据。

可以通过实施CORS策略并输出服务器端标题以允许其他指定域读取内容来允许访问,但在您的情况下,这可能在Google方面。因此,除非https://accounts.google.com实施了CORS策略,否则您将无法对服务器端流量进行客户端变体。另一个障碍是,即使CORS被实现,它也不允许访问DOM。但是,您可以通过AJAX调用从另一个域,协议或端口检索内容。目标站点还必须输出Access-Control-Allow-Credentials: true标头,以便在请求和响应由您的域读取时发送身份验证凭证(在这种情况下为Cookie)。

Can I use https for local development?

要回答您的原始问题,答案是肯定的。这可以是大多数用途的自签名证书,并且不会影响浏览器中的此特定错误消息(因为您正如浏览器用户选择接受并信任该证书一样)。

相关问题