2013-03-03 20 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列是唯一的,所以沒有兩個事務可以擁有相同的序列號。