【发布时间】:2012-09-24 23:35:01
【问题描述】:
我预见到允许通过 PayPal 从我这里购买某些内容的客户会出现问题。我将提供多种无形商品。当有人完成对其中一种商品的购买时,他们将被重定向到一个登陆页面——我们称之为“thank_you.php”——它将自动排队下载并允许链接排队下载以防万一自动启动。这将通过将唯一的项目 ID 传递给下载页面(“download.php”)来完成。
这种方法本质上是对这些主题的热门答案的模仿:
PHP generate file for download then redirect
但是,我担心一旦用户在“thank_you.php”上他们可以下载他们的项目,然后使用 Firebug(或等效)编辑项目 ID 并下载另一个不同的项目:
<a href="download.php/38a205ec300a3874c867b9db25f47c61">Download Here</a>
到
<a href="download.php/7c8ddc86c0e4c14517b9439c599f9957">Download Here</a>
我需要在这方面比我更擅长的人的想法和帮助:我可以实施什么(以及如何)作为一种解决方案,仍然允许相同的客户访问和休闲,同时防止这种操纵?
编辑:ID 哈希用于在整个站点中预览和引用项目,我不怕人们猜测,而是他们在单独的选项卡中浏览站点以获取其他 ID并继续下载不同的项目。
【问题讨论】:
-
...他们怎么会知道 7c8ddc86c0e4c14517b9439c599f9957?
-
这不是很明显ceejay吗?这是我想到的第一个哈希
-
你的哈希对应的是什么?例如它们是针对特定文件的,还是由用户、文件等构建的?无论如何,听起来你好像害怕有人猜测一个有效的随机散列。 . .除非您想定时炸弹散列并导致它们过期,否则这听起来像是您必须处理的事情?
-
项目 ID 是对整个站点中项目的唯一引用 - 虽然它不应该突出显示,但它会不时传递给客户。例如,当显示“立即购买”页面时,ID 在标题中(premium.php/[itemID])。
-
嗯,右键->复制链接,粘贴,然后任何人都可以使用链接。 . .听起来好像您需要在身份验证方案(用户名?)中至少再添加一层,或者链接一旦使用就会过期。
标签: php redirect download client-side