2013-03-03 21 views
1

我在我的网站上销售我的Windows应用程序。我使用Paypal和LibertyReserve作为我的付款处理器。我创建了结账按钮来自动执行购买流程。购买完成后,买家将被重定向到一个感谢页面。如何安全地分发串行密钥?

结帐完成后,我正在发出串行和下载链接。我目前正在使用PHP来完成它,但它并不安全。

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

现在,每个有大脑的人都可以用串行键读取整个文本文件。我如何确保这一点/让它变得更好?

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

+0

请记住,cookie可以由用户和程序创建/删除/编辑。千万不要盲目信任cookie信息! – 2013-03-03 14:17:32

+0

感谢您的提示:) – 2013-03-03 17:09:01

回答

0

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

id, serial, purchased, date, hashcode 

当用户从成功支付PayPal回来,你将他重新导向到像serial.php哈希码= {散列码? }脚本,通过散列码检索序列号并将其打印给用户。脚本还将设置购买的连续行,并且如果您不想让用户第二次看到此页面,则可以执行此操作。

+1

我正在研究MySQL。我从来没有用过,所以需要一些时间。谢谢 – 2013-03-03 17:09:21

-1

你有一张带有所有序列键的表格。

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

当执行一个事务,你有交易的唯一标识符,你会持有什么样的序列ID属于唯一标识符另一个表。

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

serialId/trans列是唯一的,所以没有两个事务可以拥有相同的序列号。