【问题标题】:Facebook multiplayer canvas game with Flash Client and .NET Server Side带有 Flash 客户端和 .NET 服务器端的 Facebook 多人画布游戏
【发布时间】:2013-06-29 14:54:28
【问题描述】:

我正在用画布开发多人 Facebook 游戏,在服务器端使用 Flash 客户端和 C#/.NET。通信使用套接字。 Flash 在 asp.net 页面中加载。

我希望有经验的开发人员提供一些关于 Facebook 集成的最佳实践,主要是在身份验证模块中。

我想出了这些场景:

  1. 用于 facebook 的 Flash SDK(外部调用 JavaScript 方法)在启动和其他调用时对用户进行身份验证。
  2. 加载应用程序时的 ASP.NET 服务器端身份验证(可能使用 Javascript SDK)。然后用“游戏服务器”(闪存是 与套接字通信)不使用带有直接调用的 JavaScript SDK 到 FB api。

哪种方法更好,为什么?我认为也会有安全问题:|

编辑 我添加了一些细节:

这是一款适合 4 名玩家的简单多人游戏。首先,我将检查 facebook canvas 在 C# 的 aspx.cs 代码中发布的 signed_request,获取 facebook 提供的 UserId 并将其传递给 flash 客户端,在此 flash 客户端使用套接字连接到服务器并发送 UserId 之后,我需要“重新验证”这个 UserId 并检查它是否是我首先使用 signed_request 获得的 id(这一步是我卡住并需要帮助的地方)。之后我觉得就可以了

【问题讨论】:

    标签: c# asp.net facebook flash facebook-graph-api


    【解决方案1】:

    这取决于应用/游戏的类型以及您通过用户身份验证保护的内容。

    如果它正在保护服务器上的任何内容,那么您就不能仅仅依靠闪存客户端来验证用户身份。请记住,攻击者可以跳过或修改您的 Flash 客户端来实现他们的目标。

    一般来说,您希望在对游戏有意义的时候进行 Facebook 身份验证,当它被发送到服务器时,它会验证并发出您自己的身份验证令牌,您可以在不访问任何外部资源的情况下进行检查。

    【讨论】:

    • 这是一款适合 4 名玩家的简单多人游戏。首先,我将在 C# 的 aspx.cs 代码中通过 facebook canvas 检查 signed_request posteb,获取 facebook 提供的 UserId 并将其传递给 flash 客户端,在此 flash 客户端使用套接字连接到服务器并发送 UserId 之后,我需要“重新验证”这个 UserId 并检查它是否是我首先使用 signed_request 获得的 id(这一步是我卡住并需要帮助的地方)。之后我觉得就可以了
    • 在检查和检索用户 ID 后,您可以为用户发出一个 asp.net 身份验证令牌(尽管需要禁用 httponly,例如在mvolo.com/… 中)。然后 reAuthenticate 变为使用内置支持它的 asp.net 检查令牌。
    • 正如我所提到的,.Net 服务器和带有套接字的 Flash 客户端之间的连接。在这种情况下如何使用 asp.net 令牌?
    • Asp.net 对它的支持不仅限于他们自己的 cookie,请查看此答案 stackoverflow.com/a/858724/66372。另请注意,如果您愿意,您仍然可以在初始部分使用 asp.net cookie,只要您确保禁用 http only 限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多