我可以使用https进行本地开发吗?

问题描述 投票:5回答:2

我正在尝试Google Developer's website上所述的Google+网络登录服务器端流程的细微变化。

Google的gapi代码给出了此错误消息:

未捕获的安全错误:阻止了源为[http://my-development-system.dev”的帧访问源为“ https://accounts.google.com”的帧。请求访问的帧的协议为“ http”,正在访问的帧的协议为“ https”。协议必须匹配。

我是不是说我的本地开发系统无法设置为使用https协议?

javascript google-oauth same-origin-policy
2个回答
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)与您的域发送的请求和响应一起发送。

我可以使用https进行本地开发吗?

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


0
投票

我说错了>

我的本地开发系统无法设置为使用https协议

可以!只需使用自我认证SSL。

© www.soinside.com 2019 - 2024. All rights reserved.