Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何安全地分发串行密钥?_Php_Javascript_Html_Mysql - Fatal编程技术网

Php 如何安全地分发串行密钥?

Php 如何安全地分发串行密钥?,php,javascript,html,mysql,Php,Javascript,Html,Mysql,我正在通过我的网站销售我的Windows应用程序。我使用Paypal和LibertyReserve作为我的支付处理器。我创建了结帐按钮来自动化购买过程。购买完成后,买家将被重定向到感谢页面 结帐完成后,我会发布一个序列号和一个下载链接。我目前正在使用PHP,但它不安全 我有一个文本文件,里面有大约100个序列。每次用户访问感谢页面时,PHP脚本都会检查cookie是否未设置为避免重复访问。如果未设置cookie,它将打开包含序列的文本文件,读取第一个序列并将其存储在cookie中。序列号将从文本

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

结帐完成后,我会发布一个序列号和一个下载链接。我目前正在使用PHP,但它不安全

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

现在,每个有点头脑的人都可以用串行键读取整个文本文件。我怎样才能保证这个/使它更好


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

在MySQL数据库中存储每个串行代码,表可以如下所示:

id, serial, purchased, date, hashcode

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

您有一个包含所有串行键的表

+--------+-----------+
| id     | serial    |
+--------+-----------+
| 1      | 123-45    |
+--------+-----------+
| 2      | 456-43    |
+--------+-----------+
当执行一个事务时,如果您拥有该事务的唯一标识符,那么您将拥有另一个表,其中保存属于该唯一标识符的序列id

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

serialId/trans列是唯一的,因此任何两个事务都不能具有相同的序列id。

请记住,用户和程序可以创建/删除/编辑cookie。永远不要盲目相信cookie信息!谢谢你的提示:我现在正在研究MySQL。我从来没用过,所以需要一些时间。谢谢