2010-06-08 14 views
35

अपने देश में में क्रेडिटकार्ड जानकारी स्टोर करने के लिए ऑनलाइन भुगतान एक पुरानी बात है, पहली बार मैंने देखा एक वेब अनुप्रयोग भुगतान एक स्थानीय बैंक खाते में सीधे लेने पिछले साल न हुआ हो।सर्वश्रेष्ठ अभ्यास डेटाबेस

तो, मैं एक नौसिखिया वेब भुगतान प्रणाली कोडिंग कर रहा हूं।

मेरा प्रश्न है, डेटाबेस में क्रेडिट कार्ड जानकारी संग्रहीत करने के लिए सर्वोत्तम प्रथाओं हैं क्या ...

मैं कई विचार है: क्रेडिट कार्ड, डेटाबेस सुरक्षा प्रतिबंध, आदि

आप क्या किया एन्क्रिप्ट करने ?

+18

ऐसी प्रणालियों के कई का एक उपयोगकर्ता के रूप में, मैं सिर्फ पूछ – reuscam

उत्तर

73

यह करने नहीं

अभी तक बहुत अधिक जोखिम शामिल है, और आपको यह सुनिश्चित करने के लिए बाहरी रूप से ऑडिट करने की आवश्यकता होगी कि आप सभी प्रासंगिक स्थानीय कानूनों का पालन कर रहे हैं और सुरक्षा प्रथाओं।

कई तृतीय-पक्ष कंपनियों है कि वह आपके लिए क्या है कि पहले से ही अपने सिस्टम सुरक्षित है, कि वे स्थानीय कानूनों और इतने पर के साथ पालन सुनिश्चित करने के सभी मुसीबत के माध्यम से चले गए हैं कर रहे हैं। अमेरिका में एक उदाहरण जिसे मैंने अतीत में उपयोग किया है authorize.net है। कुछ बैंकों में ऐसे सिस्टम भी होते हैं जिन्हें आप क्रेडिट कार्ड डेटा स्टोर करने और प्रक्रियाओं को संसाधित करने के लिए लगा सकते हैं।

मुझे एहसास है कि आपके देश में यू.एस. के रूप में सख्त कानून नहीं हो सकते हैं, लेकिन मेरी राय में यह आपके लिए रोलिंग करने का कोई बहाना नहीं है। जब आप अन्य लोगों के पैसे के साथ काम कर रहे हैं, जोखिम अभी भी वारंट ज्यादा है।

+0

मैंने सोचा कि क्रेडिट कार्ड संख्या बचत अवैध (नीदरलैंड) थी। इसलिए हमने एक्सएमएल-लेन-देन-लॉग में ************ के साथ संख्याओं को खराब कर दिया। –

+0

इस दृष्टिकोण के साथ समस्या यह है कि उन साइटों में से कई ने मेरे देश को क्रेडिट कार्ड के देश के रूप में प्रतिबंधित कर दिया है ... मैं इस स्थिति के साथ गहरी जा रहा हूं और मैं आपको बता दूंगा कि क्या मैं इसे आपके सुझाव के साथ कर सकता हूं ... –

+0

@Garis : हाँ, मैं समझता हूं कि यह आपके देश के आधार पर कठिन हो सकता है। मैं कुछ बड़े बैंकों के साथ पूछने की कोशिश करता हूं, क्योंकि उनमें से कुछ इस तरह की चीज के लिए एक एपीआई भी प्रदान करते हैं। –

2

एन्क्रिप्ट एन्क्रिप्ट एन्क्रिप्ट करें। अंतिम 4 अंक दिखाने के लिए डिक्रिप्ट नहीं है - अगर आप पूरी तरह से की जरूरत नहीं है डिक्रिप्ट न करें। उपयोगकर्ता है कि उनके कार्ड था बताने के लिए डिक्रिप्ट न करें।

वास्तव में, यदि आप कर सकते हैं, तो उसी भौतिक सर्वर में एन्क्रिप्टेड कार्ड संख्याओं को शेष उपयोगकर्ता जानकारी के रूप में भी न रखें।

+0

धन्यवाद के लिए धन्यवाद कहने के लिए, im भी CVV2 (वापस तीन अंक कोड) हर बार लॉग इन उपयोगकर्ता किसी के लिए भुगतान करने के लिए जा रहा है के लिए पूछने के लिए सोच चाहता था उत्पाद ... –

+0

@ गारिस कोड का उपयोग करने का एक अन्य लाभ यह है कि कुछ भुगतान गेटवे लेनदेन को कम कर देंगे, जिसका उपयोग आप इसे करते हैं। कम से कम जिस बैंक का हमने उपयोग किया था, उसमें कम लेनदेन लागत थी जब हमने सुरक्षा कोड मांगने के लिए स्विच किया था। –

+2

@ गारिस सुएरो सीवीवी 2 कोड को संग्रहीत करने की अनुमति नहीं है। जब आप सीवीवी 2 (और ज़िपकोड और अन्य जानकारी) प्राप्त करते हैं तो आपकी दरें कम हो जाएंगी। कई बार कई अलग-अलग दरों पर शुल्क लिया जा सकता है, भले ही यह एक पुरस्कार कार्ड है या नहीं, आदि –

19

मिनियमम पर पीए डीएसएस (भुगतान उपकरण डेटा सुरक्षा मानक) का पालन करें। अधिक जानकारी यहां पाया जा सकता:

https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml

इसके अलावा यह PCI DSS, यहां पाया जा सकता है, जिस पर देखने के लिए बुद्धिमान होगा:

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

+2

* फेसपाल्म *, मैं बहुत मूर्ख हूँ तुरंत इसके बारे में सोच नहीं है। आपको निश्चित रूप से पीए डीएसएस और पीसीआई मानकों को देखना चाहिए। – dplass

+0

बहुत जानकारीपूर्ण है ... धन्यवाद –

+0

यह स्वीकार्य उत्तर होना चाहिए। – Alan

31

इसके लिए, मैं एक व्यापक, स्तरित दृष्टिकोण की अनुशंसा करता हूं।

सबसे पहले, क्रेडिट कार्ड की जानकारी संग्रहीत करना एक विकल्प होना चाहिए।

दूसरा, डेटा को एन्क्रिप्शन के एक मजबूत रूप का उपयोग करके सुरक्षित रूप से संग्रहीत किया जाना चाहिए। मैं 256 बिट कुंजी आकार के साथ एईएस की सलाह देते हैं। सुनिश्चित करें कि अपनी कुंजी चुनते समय, आप संपूर्ण कुंजीपटल का उपयोग करते हैं (यह केवल एक यादृच्छिक रूप से जेनरेट की गई अल्फान्यूमेरिक्सिमबोल स्ट्रिंग को कुंजी के रूप में उपयोग करने के लिए एक रूकी गलती है)।

तीसरा, एईएस कुंजी को ठीक से सुरक्षित करने की आवश्यकता है। अपने कोड के अंदर मूल्य एम्बेड न करें। यदि आप विंडोज़ का उपयोग कर रहे हैं, तो डीपीएपीआई का उपयोग करने पर विचार करें।

चौथा, आप डेटाबेस अनुमतियां सेट करना चाहते हैं ताकि एप्लिकेशन और कंप्यूटर के आधार पर जानने की आवश्यकता हो।

पांचवां, अपने डेटाबेस में कनेक्शन स्ट्रिंग सुरक्षित करें।

छठी, सुनिश्चित करें कि क्रेडिट कार्ड डेटा तक पहुंचने वाले किसी भी एप्लिकेशन को ठीक से सुरक्षित किया जाएगा।

+0

एईएस में 512 बिट कुंजी आकार नहीं है। (रिजेंडेल शायद, लेकिन एईएस कार्यान्वयन नहीं)। – PaulG

+1

आप सही हैं। मानक केवल 256 तक के प्रमुख आकार निर्दिष्ट करता है। हालांकि प्रमुख आकारों के लिए कोई व्यावहारिक सीमा नहीं है। – Alan

+0

क्या आप जानते हैं कि यूनिक्स सिस्टम पर कुंजी को स्टोर करने के लिए एक अच्छी जगह कहां होगी? चूंकि एन्क्रिप्शन कुंजी के चारों ओर सुरक्षा के जितना ही अच्छा है, इसलिए मुझे चिंता है कि इसकी रक्षा कैसे करें। – Jason

2

आपको और आपके ग्राहकों के जोखिमों के कारण आपको किसी भी क्रेडिट कार्ड की जानकारी संग्रहीत करने से बचना चाहिए।

1

Authorize.net में Customer Information Manager API है जो आपको अपने सिस्टम में ग्राहक की जानकारी स्टोर करने की अनुमति देता है। यह $ 20/mo खर्च करता है। आपके खाते में ऐड-ऑन के रूप में।

-2

मेरा सुझाव है कि आप एक मजबूत एल्गोरिदम (समान एईएस) और एक लंबी गुप्त कुंजी के साथ कार्ड नंबर एन्क्रिप्ट करें।

फिर, अपनी गुप्त कुंजी को एक सुरक्षित स्थान पर बाहरी हार्ड या ऑप्टिकल डिस्क के समान रखें। जब आपको गुप्त कुंजी की आवश्यकता होती है, तो बाहरी हार्ड का उपयोग करें।

यदि आप साझा होस्ट का उपयोग कर रहे हैं, तो आपको अपनी गुप्त कुंजी को बाहरी डिवाइस में स्टोर करना होगा।

सख्त अपने डेटाबेस

  1. अपने डेटाबेस की
  2. निकालें जड़ उपयोगकर्ता अपने डेटाबेस के लिए सख्त उपयोगकर्ताओं को परिभाषित करता है, तो यह आवश्यक नहीं है।
संबंधित मुद्दे