我有一个网站,上面有一个工具。该工具是一个 HTML 表单,客户在提交后将保存为本地 PDF。表格有效。可以集成PayPal进行支付。
所有代码都通过 javascript 在客户端运行。我不想在我的服务器上存储任何数据或凭据。
我不明白的是如何保护这个特定的 HTML 文件,直到有人为它付费。我希望文件名的随机字符串可以持续 48 小时左右。只是不确定此时要搜索什么。
站点后端是 node.js,如果有帮助,则使用 Foundation CSS。
提前致谢。
最佳答案
如果您使用您提到的唯一/随机文件名,并让它在 x 时间后过期,这将混淆,但不会保护/安全。混淆可能足以满足您的需求,但不是我们应该作为官方 StackOverflow 答案提供的东西……所以我继续。
这听起来像是您拥有其中之一,请原谅我在这里的措辞,“便宜的自助/操作方法/等 pdf 出售,应该是真正免费的,并且可能在某个地方”类型的网站。我相信你们的产品很棒并且质量上乘,但如果你知道我所指的网站,并且我的假设是正确的,那么下面的信息应该会有帮助。
据我了解您的需求,您想要一个与此类似的业务逻辑版本:
- 用户在您的网站上填写表格
- 用户被重定向到 paypal,或者通过 paypal 按钮“被要求采取行动”。
- 用户支付或不支付
- 用户只有付费才能下载/访问文件。
您可以执行以下几个选项:
如果每个用户都得到相同的文件,下面的方法应该类似,但更简单
- 确保将您使用的任何 PayPal 付款方式的 CUSTOM 值设置为您为用户创建的唯一 ID,以及电子邮件地址(如果您可以从他们那里收集)。然后使用 PayPal's IPN等到收到付款。此 IPN 通知将具有付款的 CUSTOM 值,每个用户每次付款每个文件都是唯一的,您只需将适当的文件通过电子邮件发送给他们。
- 使用PayPal's Encrypted Website Payments API使用 node.js 创建安全按钮(传递 BUTTONCODE=ENCRYPTED)。安全按钮不会暴露表单变量,因此客户端永远无法访问您的 secret 文件所在的 RETURNURL,因此他们无法尝试下载它。如果他们确实找到了解密按钮的方法,那么他们花费的时间将比您的 48 小时到期时间长得多。无论哪种方式,我怀疑(无意冒犯)用户会对您的产品如此感兴趣。
有更多方法可以在不在服务器上存储用户凭据的情况下执行此操作,但如果不在服务器上存储某种类型的数据(请参阅:代码),则无法执行此操作。
关于javascript - 付费访问 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873105/