2010-07-25 249 views
35

我想讓我的客戶用戶輸入他們的信用卡信息,以便我可以每月收費。在MySQL數據庫中保存信用卡信息?

我想知道應該如何保存這些信息?

應該將它保存在MySQL數據庫(「用戶」表)還是這種信息太敏感,需要存儲在另一個地方?

我沒有這方面的經驗,並會很高興如果有人可以告訴我如何做到這一點。

謝謝。

+18

根據適用於您經營業務所在地的法律,以這種方式存儲信用卡號碼甚至可能是*非法*。要小心,與你的銀行和/或法律代表談談。 – 2010-07-25 11:14:43

+0

它是合法的嗎?在大多數情況下,我們使用Paypal和ccavenue進行在線交易。如果您存儲了信用卡信息,則需要更多的安全性。 – 2010-07-25 14:40:21

+1

不要。 (我作爲程序員和買家的意見。) – 2010-07-25 19:18:49

回答

73

如上所述,不要將信用卡信息存儲在數據庫中。這是一個麻煩的祕訣。這樣做會使你成爲黑客非常有吸引力的目標,並且如果他們成功地獲取黑客,就會結束你的生意並可能毀掉你的生活以及信用卡號碼被盜的人的生命。

說了這裏有三件事情要考慮:

1)最好的辦法是使用支付處理器/支付網關,提供定期結算。這方面的一個例子是Authorize.Net's Automated Recurring Billing服務。一旦您設置了訂閱,他們會自動爲您自動爲用戶開賬單,並讓您知道交易結果。它可以爲您節省大量的工作,並減輕您存儲信用卡信息的責任。

2)如果您要存儲商店信用卡號碼,您必須按照PCI guidelines。這些準則由支付卡行業制定並確定您可以做什麼,不可以做什麼。它還定義瞭如何存儲信用卡信息。您需要加密信用卡號碼,您應該但不需要加密相關信息(到期日期等)。您還需要確保您的Web服務器和網絡安全。未能符合PCI合規性將導致您的商戶賬戶失效並被永久禁止擁有真實的商家賬戶。這會限制您使用不太靈活的第三方處理器。請記住,PCI指導方針是一個好的開始,但對於在線安全來說,它並不是一個「如何」。你的目標是超過這個建議(很多)。

3)國家法律取代PCI合規。如果您遭受違規並且信用卡號碼被盜,您可能會被起訴。各州之間的法律各不相同,並且隨着立法者們纔剛剛開始意識到這是多麼嚴重的問題而不斷變化。

就加密而言,請確保您閱讀了哪些加密算法是安全的並且尚未破解。 Blowfish是一個很好的開始,如果您使用PHP,建議使用mcrypt libraryexample)。

+0

哪裏是找到當地法律的最佳地點? – 2013-09-26 14:26:29

+0

非常有用的信息約翰。 – 2015-03-15 01:09:52

+1

Square.com有一個整潔的API。他們將以符合PCI規範的方式爲您存儲卡信息。 – AjaxLeung 2016-07-30 11:24:50

15

最安全的方式是商店系統上的信用卡信息,但讓3 第三方支付提供商爲你做它。

+0

怎麼樣?哪個?你能否給我更多的信息 – 2010-07-25 11:27:00

+0

這樣,所有的法律問題將與第三方。 – 2010-07-25 11:47:05

+1

+1 - 除非您的客戶符合PCI標準,否則請不要這樣做。你可能會讓你和你的客戶陷入一個受傷的世界。使用支付處理器(如PayPal)(但其費用令人髮指),GoogleCart,Authorize.net – gnome 2010-07-25 14:16:19

6

不需要您使用PayPal等第三方支付提供商,但如果您打算存儲支付卡信息,則需要使用PCI compliant。閱讀這篇關於BC Ferries, who face substantial fines for not keeping up to date with PCI compliance的文章,瞭解它符合PCI標準的嚴肅程度。

我目前的僱主正在通過PCI合規 - 這不是一個微不足道的過程,並且需要員工進行審計。執法取決於國家和州/省的法律 - 加拿大IIRC要求您通過PCI聘用委員會進行PCI認證,而美國的一些州則允許PCI合規性審覈公司代替PCI委員會。