我们有大量的网站需要实现跨域登录,即。如果有人使用凭据登录到站点 X,则当用户导航到站点 A 或 B 时,他应该自动登录到站点 A 或 B。
此外,我们希望提供一个通用的 UI/Javascript,所有站点都可以将其放在其 HTML 文件中,并且它将在内部调用一个通用 API,并以某种方式将用户登录到站点 A 或 B。
它类似于 Facebook 所拥有的。如果一个人登录 facebook 并访问一个站点,如果他已授予该站点的权限,他将自动登录。
此外,每个具有 facebook 社交插件的站点上都存在相同的 facebook UI,并且包括 facebook 插件的站点不必从其自己的服务器对 facebook 进行任何调用(我猜该调用是从浏览器进行的)。
我看到对 facebook 的调用包含该应用程序使用的 API 密钥,但由于 API 密钥是可见的,它不再是秘密。FB如何防止通过相同的API密钥对其服务器进行随机DOS攻击,如果用户随机更改他的IP地址?
假设我们尝试实现与 X 相关联的所有网站 A、B 的相似之处,因为 API 密钥已暴露(就像在 FB 的情况下一样),我怎样才能阻止不同的流氓网站,比如 ABC.com 使用相同的 API 密钥,并且就像它是网络的一部分一样。
我猜因为调用来自浏览器,并且来自 javascript,所以 API 密钥总是公开的。调用是否必须始终来自服务器,以便 API 密钥保密?
就我而言,各种网络网站(如 A、B 等)的用户界面如何将某些内容传递给 X 的服务器,以便服务器 X 可以识别呼叫确实来自可靠来源并且没有被冒充?
谢谢
图科