使用JavaScript SDK,可以在用户同意的情况下发布帖子。既然它可以完全在客户端完成,如何防止某人代表我的应用程序发布某些内容,篡改“图片”,“链接”,“标题”和“描述”等字段?
为赏金编辑:
Bragging是任何游戏的重要组成部分,包括在线游戏。在我的网络游戏中,我希望用户能够在Facebook赢得时吹嘘自己,但我不希望他们能够伪造一些帖子并通过我的应用程序发送,这将允许他们吹嘘而不实际获胜。如果我实际允许他们这样做,他们可能只通过我的应用程序发布一些东西(我只能想象一下使用一些经过身份验证的服务器端API来确保这一点)。
Facebook的Feed Dialog允许开发人员提示用户是否想要在他们的墙上发布内容,我也可以使用它来发布用户的获奖故事。问题是该API完全是客户端的,可以通过Javascript SDK或伪造URL来使用。我能够通过填写URL中的字段来填写我的应用程序名称中的帖子,如下所示:https://www.facebook.com/dialog/feed?
app_id=123050457758183&
link=https://developers.facebook.com/docs/reference/dialogs/&
picture=http://fbrell.com/f8.jpg&
name=Facebook%20Dialogs&
caption=Reference%20Documentation&
description=Using%20Dialogs%20to%20interact%20with%20users.&
redirect_uri=http://www.example.com/response
问题在于我无法为现有应用程序(例如Robot Unicorn Attack : Evolution)提出此类请求。因此,1)我不知道如何伪造一个请求到这个应用程序,这仍然是可能的,没有安全性或2)有可能防止客户端利用Facebook的API,我不知道如何在我的应用程序上执行此操作。
所以,为了赏金,我会考虑一个正确的答案1)一些证据表明总是可以代表某个应用程序伪造一个帖子,并且我需要一种方法来发布我想要的任何内容代表Robot Unicorn Attack : Evolution,或2)一种阻止用户代表我的应用程序伪造Feed帖子的方法,以某种方式我不能再使用服务器端信息。
答案 0 :(得分:2)
如果您想代表Robot Unicorn Attack:Evolution发布任何内容,请执行以下操作:
0)确保您已添加该应用。
1)使用Chrome,转到https://s.adultswim.com/games3/fb-game-files/robotunicornattackevolution-sec/index.html(通过检查画布页面上内容的iframe上方的表单标记的操作来找到此URL)
2)打开开发人员工具
3)在控制台中粘贴:
FB.ui({
method: 'feed',
name: 'There is no security',
link: 'https://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'I can post whatever i want',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
});
4)按Enter键,然后在页面上弹出对话框
答案 1 :(得分:0)
1)一些证明,总是可以代表伪造一个帖子 一些应用程序,并且我需要一种方式发布任何我 希望代表机器人独角兽攻击:进化,
你已经做到了。保持自我证明。因此证明了。
2)一种防止用户代表我伪造饲料帖子的方法 应用程序,在没有服务器端的情况下,我再也无法做到这一点 只有信息。
Feed帖子需要的是一个应用程序ID,它无法隐藏。因此,只要您有申请 - 任何人都可以代表其发布。 (据我说。)