2010-02-27 112 views
1

好的,这是问题所在。从外部访问安全脚本?

我有一个facebook应用程序,用户可以通过它获取积分来完成调查。当用户完成调查时,在调查结束时,会启动一个跟踪像素以归功于用户帐户。该像素加载一个脚本,如下所示:

http://www.mysite.com/fb/add-credit.php?userid=<fbid> 

我想从外部访问来保护它。我曾考虑过使用推荐人,但有人可以轻松地嗅探流量,并伪造推荐人。

我也想过这个。当用户单击链接完成调查时,我将在数据库中创建一个条目,并使用MD5时间戳作为标记。如果用户尝试通过直接转到附加信贷脚本来记入自己的帐户,那么他们需要知道确切的时间戳。

第二种解决方案会有什么问题吗?

回答

2
id, clientId, surveyId, MD5Hash 

当客户端启动的调查,作出这样的MD5Hash这样:把IP地址&调查ID concate和MD5是,所有这些信息添加到表中。当客户端到达调查结束时,图像仅以调查ID进行调用,图像是以某种方式将调查ID作为参数调用的脚本,而MD5表示被调整的IP地址和调查ID。然后检查它是否能找到与此相匹配的MD5Hash,如果是,则给予客户信用并清除MD5Hash字段以确保客户端不会获得双重信用。

+0

正是我在想什么:)谢谢。 – 2010-02-27 10:26:39

+0

我把它清理成只使用一张桌子,它可能会帮助你多一点点。现在是5点半,我通常在凌晨4点做我最好的想法,但今天是漫长的一天,所以我很抱歉如果我的第一个答案是错综复杂的。 – 2010-02-27 10:33:41

+0

您可能想要遵循DCC的建议,并且也会使用MD5哈希值,因为这会使客户端的观点变得非常困难。 – 2010-02-27 10:36:56

2

取决于您如何在数据库中创建时间戳,thrum ajax或php?

此外,当创建时间戳使用时间+ facebookid + ip的组合,与md5盐渍:)

+0

我不会使用Ajax ......除非有一个有利的理由。 – 2010-02-27 10:24:56

+0

您对腌制MD5有一定的指导意义。 – 2010-02-27 10:35:30