【问题标题】:Hide call of php file隐藏调用php文件
【发布时间】:2015-10-24 21:39:53
【问题描述】:

我运行了一个链接缩短器,用户为使用短网址的访问者获得报酬。他们看到一个登录页面,然后单击“跳过”,他们被重定向。但是我的一些用户试图作弊,而不是给他们的访问者像 example.com/a/53425 这样的短网址,他们给他们http://example.com/a/pugt.php?url=53425 >pugt.php 执行了 2 个 sql 查询:

  1. 从数据库中检索到目标url

  2. 网址的创建者每位访问者可获得 +1 分。

这意味着访问者在没有看到我的目标网页上的广告的情况下被重定向,并且用户得到了他的积分。有没有办法隐藏这个 php 文件,或者以更智能的方式执行这个 sql 查询?

这是我的登录页面上“跳过”按钮的源代码: $url 是短 url 的 id,例如 53425

<section class="example">
   <br/>
   <a href="http://example.com/a/pugt.php?url=<?php echo $url; ?>" ><img style="display: block; margin-left: auto; margin-right: auto;width:15%; " src="img/proceed2.png"></a>
   <br/>
   <center><script src="//go.padstm.com/?id=345791"></script></center>
</section>

【问题讨论】:

  • 为了使某人无法像您所描述的那样作弊,获得积分以及显示广告的逻辑必须包含在同一步骤中。不知道你有没有控制权。是否可以将广告显示逻辑移动到目标 URL 中,这样 URL-shorterner 除了缩短 URL 什么都不做?
  • 是的,我以前就是这么做的。如果我在登录页面的 .php 文件中添加积分,人们只是重新加载它以获得积分。必须有一个步骤来确保至少有一个人点击某物作为反机器人保护。 @NickCoons

标签: javascript php jquery html mysql


【解决方案1】:

最好的方法是为每个 url 创建一个令牌。添加一个名为 token 或任何您喜欢的新数据库列。 所以你的网址应该是这样的:

http://example.com/a/pugt.php?token=e49s73tr6198e76dg4&amp;url=53425.

每次访问者查看您的广告时,您的 php 脚本都会更新令牌,并为下一个网址设置新令牌。如果没有有效的令牌,任何人都无法绕过您的添加。

【讨论】:

  • 在稍后的评论中,OP 指出人们反复调用相同的 URL 以获得额外的分数。我会在您的回答中补充一点,令牌应该只对一次访问有效,这样重复使用同一个令牌就不会获得额外积分。
  • @NickCoons 该令牌用于跳过网址。用户将共享的 url 应该是静态的,而下一个要跳过的 url 将是动态的。因为为每个请求添加了不同的令牌。实际上,用户复制跳过网址并共享该网址。他们不共享网址缩短器提供的网址。
【解决方案2】:

是的,Vaze 处理隐藏 URL 的更好方法是使用 urlencode 加密 URL,因为它符合您的要求。这样,用户就无法理解 url,而您将拥有所需的内容。在后端 php 魔术时,您需要 urldecode 您的 url 以便执行与您当前所做的相同的事情。

【讨论】:

  • urlencode() 不是加密。它甚至没有接近。
  • 该问题中被 URL 编码的数据已经被加密; URL 编码用于使其作为查询字符串参数有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多