2013-03-13 101 views
0

我有一个API将URL传递到我的网络上的重定向页面。该网址看起来像这样:

http://mydomain.com/offers.php?country=US&offerID=5555 

还有一些其他参数,但这是它的杰作。问题是用户正在滥用它并使用机器人创建自己的点击。我想创建一个密钥系统,强制用户使用来自API的链接,以免它被滥用。

事情是这样的:

api.php

<?php 
$random_number=mt_rand(1,100); 
$url="http://mydomain.com/offers.php?country=US&offerID=5555&key=".$random_number; 
echo $url; 
?> 

offers.php

​​

这显然是一个非常愚蠢的解决方案,因为它只是使用一个随机数......但希望你看到我想要完成的事情。

我的想法是按小时加密日期字符串,并用静态隐藏密钥加密。这会使关键每小时变化一次,并且对于欺骗者来说将更加困难。唯一的问题是,如果有人在9点59分得到了API的URL,它将在10点到期,这太短了。

这样做的最好方法是什么? (理想)键应该是...

  • 动态 - 它应该有点频繁地改变。
  • 轻量级 - 只能检查密钥才能花费大量资源。
  • 很难破解/模拟。

您有什么建议?

回答

0

1次使用散列,存储当前用户的会话呢?