Facebook应用程序-有关用户的安全注意事项';s的facebook Id

Facebook应用程序-有关用户的安全注意事项';s的facebook Id,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我正在使用ASP.NETMVC3构建一个facebook游戏。(就技术和外观而言,更像黑手党战争,而不像Farmville)。 游戏的几乎所有动作都将由我们编写的Javascript(调用RESTAPI)触发 现在,我们的游戏身份验证是使用Facebook的JS SDK完成的,我们还要求获得离线访问权限。因此,当用户第一次注册时,我们将auth_令牌保存在数据库中 我想知道,从安全性的角度来看(并使人们难以伪造id),访问应用程序中执行的操作的用户id的最佳方法是什么 我知道以下方法: 将其存储

我正在使用ASP.NETMVC3构建一个facebook游戏。(就技术和外观而言,更像黑手党战争,而不像Farmville)。 游戏的几乎所有动作都将由我们编写的Javascript(调用RESTAPI)触发

现在,我们的游戏身份验证是使用Facebook的JS SDK完成的,我们还要求获得离线访问权限。因此,当用户第一次注册时,我们将auth_令牌保存在数据库中

我想知道,从安全性的角度来看(并使人们难以伪造id),访问应用程序中执行的操作的用户id的最佳方法是什么

我知道以下方法:

  • 将其存储在全局javascript变量中,并使用JSSDK在每次页面加载时加载它。(坏主意,因为这在Firebug中很容易更改)

  • 使用已设置的fbs_U8;[app id]cookie从服务器端读取值。(同样,我能够更改发布到服务器的cookie中的值)

  • 使用C#SDK并执行API获取(for/me)以使用cookie中提供的身份验证代码获取ID(到目前为止,这是最安全的方法,也是最慢的方法)

  • 任何指点都将不胜感激。 如果我对这件事过于偏执,也请告诉我

    我相信一定有一个干净,简单,安全的方法,我忽略了


    谢谢。

    我想我会把我们正在做的事情记下来,以防以后有人偶然发现。 我查看了Zynga的《黑手党战争》,发现我的facebook id在整个页面的HTML代码中几乎有6到7个位置

    我想你可以试着胡闹一下,用Firebug修改它——但是由于存在大量的模糊javascript,你需要有足够的动力去做

    然而,我们最终做的是如下。 我们的游戏要求用户离线访问——因此我们在第一次登录时获得的访问令牌保存在数据库中

    然后,每当用户执行一个操作时,与帐户关联的facebook cookie就会返回给我们,我们从中取出访问令牌

    然后,我们在自己的数据库中查找与此访问令牌对应的用户id。 如果找不到用户id(比如,对于新用户),我们使用facebook api执行GET(“我”)来获取用户id

    这有点无效,但我想暂时可以。如果我们最终做了其他事情,将更新此。也许我们只是分析得太多了