1

我正在通过我的网站销售我的 Windows 应用程序。我使用 Paypal 和 LibertyReserve 作为我的支付处理器。我创建了结帐按钮来自动化购买过程。购买完成后,买家会被重定向到感谢页面。

结帐完成后,我将发布序列号和下载链接。我目前正在使用 PHP 进行操作,但它并不安全。

我有一个包含大约 100 个连续剧的文本文件。每次用户访问感谢页面时,PHP 脚本都会检查是否未设置 cookie(以避免重复访问)。如果 cookie 未设置,它会打开带有序列号的文本文件,读取第一个序列号并将其存储在 cookie 中。序列号从文本文件中删除。之后,通过使用“标题”将用户重定向到显示 cookie 内容并显示“这是您的序列号:[包含序列号的 cookie 值在此处]”的最终页面。

现在,稍微有点脑子的人都可以用串行键读取整个文本文件。我怎样才能保护它/让它变得更好?

任何建议都会派上用场。谢谢!

4

2 回答 2

0

将每个序列码存储在 MySQL 数据库中,表可能是这样的:

id, serial, purchased, date, hashcode

当用户从 paypal 成功付款返回时,您会将他重定向到类似 serial.php?hashcode={hashcode} 脚本,该脚本通过哈希码检索序列号并将其打印给用户。脚本还将串行行设置为已购买,如果您不想让用户第二次看到此页面,您可以这样做。

于 2013-03-03T14:05:02.737 回答
-1

您有一个包含所有序列键的表。

+--------+-----------+
| id     | serial    |
+--------+-----------+
| 1      | 123-45    |
+--------+-----------+
| 2      | 456-43    |
+--------+-----------+

当一个事务被执行,并且你有一个事务的唯一标识符时,你将有另一个表,其中包含属于该唯一标识符的序列 ID。

+--------+-----------+-----------+
| id     | trans     |  serialId |
+--------+-----------+-----------+
| 1      | 654326    |  1        |
+--------+-----------+-----------+
| 2      | 876430    |  2        |
+--------+-----------+-----------+

serialId/trans 列是唯一的,因此没有两个事务可以具有相同的序列 ID。

于 2013-03-03T14:06:48.613 回答