好的,这是问题所在。
我有一个Facebook应用程序,用户可以通过该应用程序获得积分来完成调查。当用户完成调查时,在调查结束时,会触发跟踪像素以记入用户帐户。像素加载如下所示的脚本:
http://www.mysite.com/fb/add-credit.php?userid=<fbid>
我希望通过外部访问来保护这一点。我曾考虑使用引荐来源,但有人可以轻易地嗅探流量,并伪造推荐人。
我也想过这个。当用户单击链接以完成调查时,我将在数据库中创建一个条目,其中MD5时间戳作为令牌。如果用户要通过直接转到添加信用脚本来尝试归功于自己的帐户,则需要知道确切的时间戳。
第二种解决方案会出现任何问题吗?
答案 0 :(得分:2)
id, clientId, surveyId, MD5Hash
当客户开始调查时,请像这样制作MD5Hash:获取IP地址&amp;调查id concate和MD5吧,将所有这些信息添加到表中。当客户端到达调查结束时,仅使用调查ID调用图像,图像是以某种方式将调查ID作为arg的脚本,MD5是已合并的IP地址和调查ID。然后检查它是否能找到与此匹配的MD5Hash,如果匹配,则给予客户信用并清除MD5Hash字段以确保客户端没有获得双重信用。
答案 1 :(得分:2)
取决于你如何在数据库,thrum ajax或php中创建时间戳?
另外在创建时间戳的时候使用time + facebookid + ip的组合,用md5加盐:)