Php 使用Facebook Connect和HTTP请求闯入应用程序
我有一个基于PHP的投票应用程序,它需要Facebook登录(使用PHPSDK)。你需要连接你的Facebook帐户才能投票。我们决定使用Facebook登录来防止选举欺诈 使用Facebook帐户登录后,会发生以下情况:Php 使用Facebook Connect和HTTP请求闯入应用程序,php,security,facebook-apps,Php,Security,Facebook Apps,我有一个基于PHP的投票应用程序,它需要Facebook登录(使用PHPSDK)。你需要连接你的Facebook帐户才能投票。我们决定使用Facebook登录来防止选举欺诈 使用Facebook帐户登录后,会发生以下情况: 登录页面有隐藏变量-用户ID、accessToken、姓名、电子邮件、性别、位置、家乡和用户配置文件链接-所有这些都是从Facebook登录返回的 用户在投票中选择一个选项,然后应用程序记录他的选择以及他的身份详细信息(在第一点中列出) 现在,问题就在这里。我可以模拟一个
- 登录页面有隐藏变量-用户ID、accessToken、姓名、电子邮件、性别、位置、家乡和用户配置文件链接-所有这些都是从Facebook登录返回的
- 用户在投票中选择一个选项,然后应用程序记录他的选择以及他的身份详细信息(在第一点中列出)
- 入侵者可能使用有效的用户配置文件URL列表来创建欺诈投票。如果他这样做了,我们就不知道投票是否有欺诈行为
- 防止舞弊投票不是比事后清理好吗
谢谢大家! 把这些东西放到表单中,而不做其他事情不是这样做的 这应该如何工作:
$uid=$facebook->getUser()
获取刚刚登录的用户的用户ID。如果为0,则登录失败由于我不完全了解FBAPI提供的各种方法,因此我将在这方面听从@Igy的意见(参见他关于检索访问令牌以验证帐户的评论)。不过,我不知道用户必须具备什么能力才能伪造API返回的帐户id。为什么不允许每个facebook用户id只允许一次投票,并让用户授权您的应用,这样您就可以获得一个访问令牌,用于验证用户ID?该应用已经允许每个用户ID进行一票表决,并且需要用户授权该应用。你的最后一部分解决了问题。我可以测试访问令牌,看看用户是否有效。非常感谢你!那帮我省去了很多麻烦!顺便问一下,将userID和访问令牌存储在隐藏变量中而不是会话变量中会是一个安全问题吗?用户(入侵者)也可以访问会话变量。非常感谢。是的,这个应用程序就像你上面提到的那样工作@伊吉的评论解决了这个问题。我没有意识到我可以使用访问令牌测试用户的有效性。非常感谢您抽出时间回答。非常感谢。