我目前正在爲客戶創建一個應用程序,使他們能夠自動記帳客戶的信用卡。處理敏感信息有哪些最佳做法?
我很好奇最佳實踐安全地存儲和訪問信用卡信息,併爲此,任何其他敏感信息,如社會安全號碼,帳戶號碼等。
我是假設某些類型的加密將被使用,但在我深入挖掘之前,我想看看別人如何處理這些類型的需求。
這並不重要,但我們正在設計使用Microsoft SQL Server作爲數據庫的軟件,並使用C#和ASP.NET。
我目前正在爲客戶創建一個應用程序,使他們能夠自動記帳客戶的信用卡。處理敏感信息有哪些最佳做法?
我很好奇最佳實踐安全地存儲和訪問信用卡信息,併爲此,任何其他敏感信息,如社會安全號碼,帳戶號碼等。
我是假設某些類型的加密將被使用,但在我深入挖掘之前,我想看看別人如何處理這些類型的需求。
這並不重要,但我們正在設計使用Microsoft SQL Server作爲數據庫的軟件,並使用C#和ASP.NET。
閱讀PCI requirements。一切都會在那裏。
其實,你必須跟着他們。
不要 - 我的意思是,你真的需要嗎?
有第三方支付服務的強大市場,他們可以收到您的詳細信息,只需付款後發送給您一條消息。還有像PayPal這樣的替代品,您可以使用MD5或SHA1保護數據 - 丟棄瑣碎內容,如確切的數字字符串。
1 - 甚至沒有收集SSNs,除非你真的需要它們。除非你是銀行或政府,否則你是不可能的。
2 - 不收集其他敏感信息,除非你真的需要
3 - 使用任何控制是合適的(不同的機器數據庫,防火牆,訪問控制等)的東西youdo真的需要保持。
對於不同的應用程序,需要不同的PCI標準兼容性。如果您的應用程序僅收集CC號碼,然後將其提交給第三方PCI兼容的支付網關,則您的合規性要求不會太差 - 只要您不存儲卡號或CVV。
在記錄方面,你應該「消化」信用卡號碼,例如,保留前6位數字和後3位數字,但會掩蓋中間數字。根本不要記錄CVV。
PCI標準文檔非常詳細,但這一切都取決於您的應用程序對您所需的合規性級別的要求。
使用嚴格的標準來保護主機系統在操作系統和物理安全性方面的安全性,例如NSA guidelines。
將數據庫放在與Web服務器或其他功能不同的系統上,以防止物理訪問和權限升級攻擊。
防禦性地編程以避免SQL注入攻擊和類似漏洞。
在開發時,首先要考慮安全性。事後回顧並應用安全性將很困難且容易出錯。
嘗試分離應用程序的各個部分...即不要使用相同的查看器或控制器進行「公共」訪問和「私人」訪問。
請注意並遵守所有有關處理這些數據的當地法律......其中有很多。
請保留supply of envelopes,以便在發生違規時通知您的客戶。如果您失去了2600萬客戶的信息,您可能無法獲得足夠的信封來滿足通知其違約的法定時間表。
與OWASP威脅密切相關,並確切知道如何在您的應用程序和框架中應對這些威脅。很難相信有多少人接受了針對SQL注入和跨站腳本攻擊的愚蠢解決方案。
你能詳細解釋一下...也許提供一些鏈接? – mattruma 2008-10-08 22:48:32
當然。 :) 信用卡公司聯手打擊欺詐行爲。現在,每個處理信用卡的人都需要遵守這些要求。 你可以在這裏讀到一些: http://biztechmagazine.com/article.asp?item_id=354 – mannu 2008-10-08 22:53:14