0

我在 wordpress 中使用 S2member 插件来生成对 PPV 内容(体育赛事视频)的访问。这设置为付款后的单页访问。当用户点击购买时,它会将他们带到贝宝,然后在付款后将他们重定向回受限页面,并使用唯一的 url 字符串something.com/?s2member_sp_access=635v545d52504p4i4q5v645n5c3j313e5f3c3u493t3d3h3d323d5e4a3t3v3a3c3737373135483c3uh4f3b49483c3uh4f3

现在我的问题是,虽然每个购买的用户都会获得一个唯一的 url 字符串,但他们可以将其复制并发送给其他人,并将内容访问权限授予他们想要的任何其他人,而无需付费。

我想关闭这个漏洞,方法是设置一些东西,只允许一个唯一的 url(字符串)同时访问页面。因此,即使他们将网址泄露出去,也只有一个人可以同时进入,从而导致多个用户免费使用。

这可能吗?

4

1 回答 1

1

最终,对于希望重新分发内容的用户,您无能为力。即使您将 URL 设为一次性使用,客户仍然可以下载一次并复制给其他人。为了抵消这种情况,您可能会考虑使用水印使每个客户的内容都独一无二,这样您至少可以知道是哪个客户重新分发了内容,如果您在野外找到副本。

话虽如此,您提出的问题没有意义。您说“只允许一个唯一的 url(字符串)同时访问页面”但是 url(字符串)不访问网页,用户代理可以!

至少有两件事可以让客户更难重新分发用于下载内容的 URL,并可能阻止随意重新分发的尝试。两者都要求您在访问 URL 时运行一些代码(脚本等),它们本身并不是您将要进行的配置.htaccess

  • 使 URL 一次性使用。

    每当访问唯一 URL 时,请检查一个数据库,该数据库标记每个唯一 URL 之前是否已被使用过。如果之前没有使用过,请标记为已使用。如果之前已经使用过,则拒绝该请求。

    :容易

    缺点:对于下载中断或中断的用户来说非常烦人。他们不能重试!

  • 使用 cookie 使 URL 仅在一个浏览器中有效。

    每当访问唯一 URL 时,检查用户代理是否提供了具有特定名称的 cookie。如果不是,这可能是第一次访问此 URL。检查您的数据库,看看是否应该已经为这个唯一的 URL 设置了 cookie。如果是,则拒绝该请求。如果否,则为此 cookie 选择一个新的随机值并将其设置在您的数据库中,然后将其与响应一起返回。如果用户代理确实提供了一个 cookie,请根据您的数据库检查它的值以确保它是正确的,并且只有在是时才允许请求。

    优点:一位客户可以从一个浏览器无限次访问该 URL

    缺点:聪明的用户可以从他们的浏览器中复制 cookie 值并将其发布,以便其他人可以在他们的浏览器中手动设置它并阻止您的保护方案。

于 2012-08-07T16:49:39.480 回答