我正在尝试将Facebook身份验证嵌入我的应用程序中。
我最初的努力是在浏览器中登录并获取代码。我将此代码传回我的API,获得访问令牌(保留在服务器上),并通过我的服务器路由所有请求到FB API。我认为这完全安全,因为我的客户端没有信息可以使其能够对FB进行授权调用作为我的应用程序。
然而,我一直在研究FB Javascript SDK以避免编写打开和关闭对话框的代码,并注意到它允许我获得“登录状态”,并返回给我访问令牌。此外,我在他们的文档中查看了FB授权流程,他们说客户端-服务器混合流程是可以的,其中服务器实际上会将“长期访问令牌”返回给客户端,并建议我使用HTTPS(公平)。
现在,所有这些都让我想到安全问题。我不能作为潜在的黑客注入一些javascript到用户的网页中,可以做以下两种情况: a) 进行getLoginStatus并获取访问令牌 b) 通过向我的API服务器发出请求并获取访问令牌
然后,如果用户授权我的应用程序执行此操作,将其用于发布到Facebook,就好像我的应用程序正在执行此操作一样?
我是一个安全新手,可能忽略了很多东西,但是请问有人能帮我理解我错过了什么吗?
提前感谢!
PS: 我知道我可以启用更高级的安全性来确保每次请求时都需要应用程序密钥,客户端无法执行此操作,因为该信息永远不会在客户端上可用。
然而,我一直在研究FB Javascript SDK以避免编写打开和关闭对话框的代码,并注意到它允许我获得“登录状态”,并返回给我访问令牌。此外,我在他们的文档中查看了FB授权流程,他们说客户端-服务器混合流程是可以的,其中服务器实际上会将“长期访问令牌”返回给客户端,并建议我使用HTTPS(公平)。
现在,所有这些都让我想到安全问题。我不能作为潜在的黑客注入一些javascript到用户的网页中,可以做以下两种情况: a) 进行getLoginStatus并获取访问令牌 b) 通过向我的API服务器发出请求并获取访问令牌
然后,如果用户授权我的应用程序执行此操作,将其用于发布到Facebook,就好像我的应用程序正在执行此操作一样?
我是一个安全新手,可能忽略了很多东西,但是请问有人能帮我理解我错过了什么吗?
提前感谢!
PS: 我知道我可以启用更高级的安全性来确保每次请求时都需要应用程序密钥,客户端无法执行此操作,因为该信息永远不会在客户端上可用。