2008-11-12 12 views
9

मैं .NET में क्रेडिट कार्ड लेनदेन को संसाधित करने की कोशिश कर रहा हूं और यह सफारी, ओपेरा और आईई में पूरी तरह से काम करता है। जब मैं फ़ायरफ़ॉक्स में एक ही लेनदेन का प्रयास करता हूं तो यह दो अनुरोध भेजता है और मैं एक डबल चार्ज कार्ड के साथ समाप्त होता हूं। Google पर त्वरित खोज से ऐसा लगता है कि यह फ़ायरबग के साथ एक मुद्दा है लेकिन मैं इस डबल पोस्ट को रोकने का कोई तरीका नहीं ढूंढ पा रहा हूं।फ़ायरफ़ॉक्स दो बार अनुरोध भेज रहा है

क्या किसी को यह जानने का कोई विचार है कि फ़ायरफ़ॉक्स (और फ़ायरबग) को ऐसा करने से कैसे रोकें?

+0

साइट का प्रमाणीकरण किस प्रकार का उपयोग करता है? –

उत्तर

8

nonce का उपयोग करें, एक अनूठी कुंजी जिसका उपयोग केवल एक बार किया जाता है।

ब्राउज़र में फॉर्म फ़ील्ड के साथ एक अद्वितीय संख्या भेजें (यह अक्सर एक छिपे हुए इनपुट फ़ील्ड के साथ किया जाता है), और लेनदेन के साथ सर्वर पर एक प्रतिलिपि संग्रहित करें। फॉर्म के भीतर, सबमिट पर नंबर बदलें। मान्य करें कि आपके अनुरोधों को संसाधित करते समय कुंजियां मिलती हैं।

सामने के अंत में क्या हो रहा है, इसकी स्पष्ट व्याख्या भी हो सकती है, और उस मुद्दे को क्लाइंट-साइड को समाप्त किया जा सकता है। सर्वर पर डबल-सबमिट समस्या को हल करना सबसे अच्छा है, बस इसलिए कि ऐसे कई तरीके हैं जिनमें डबल सबमिट हो सकता है।

+0

ऐसा लगता है जैसे यह चाल हो सकता है। मैं कल इसे आजमाउंगा और आपको बता दूंगा कि यह कैसा चल रहा है। धन्यवाद! –

+0

@ क्रिस फिलिपॉट्स - क्या आपके पास इस समाधान के साथ कोई भाग्य है? हम अपने आवेदन में एक ही समस्या का सामना कर रहे हैं जो क्रेडिट कार्ड भुगतान को संसाधित करता है। –

0

मुझे एक ही समस्या है - यह नहीं पता था कि यह फ़ायरबग के लिए विशिष्ट था। यदि उपयोगकर्ता बैक बटन पर क्लिक करता है और पुनः सबमिट करता है तो आपको वास्तव में इसे ठीक से ठीक करना चाहिए।

सामान्य तरीके फॉर्म में एक छिपे हुए क्षेत्र में लेनदेन के लिए एक अद्वितीय टोकन होना है। जब सर्वर-साइड फॉर्म प्राप्त करता है, तो यह एक और लेनदेन को रोकता है।

2

मैं Firebug 1.2.1 का उपयोग करें और यह पहले से ही डबल पोस्ट बग के लिए एक रोकथाम है, यह आप इस चेतावनी से पता चलता है जब आप AJAX प्रतिक्रिया देखना चाहते हैं:

Firebug करने के लिए सर्वर पर पोस्ट करने की जरूरत है यूआरएल के लिए इस जानकारी को प्राप्त: http://example.url/

यह दूसरी पोस्ट साथ कुछ साइटों हस्तक्षेप कर सकते हैं। आप पोस्ट फिर से भेजना चाहते हैं, फ़ायरफ़ॉक्स में एक नया टैब, उपयोग यूआरएल 'about: config' खोलते हैं, तो सेट बूलियन मूल्य 'extensions.firebug.allowDoublePost' सच करने के लिए यह मान हर बार को रिस्टार्ट रीसेट किया जाता है फ़ायरफ़ॉक्स यह समस्या गायब हो जाएगी जब https://bugzilla.mozilla.org/show_bug.cgi?id=430155 भेज दिया गया है।

+0

मेरे पास भी वही चीज़ है जो मेरे साथ भी है। मुझे एक समाधान की आवश्यकता है जो ब्राउज़र के पुराने कथन वाले लोगों के साथ होने से रोकेगी। –

+0

एक ही मुद्दे के साथ अटक गया और यह फायरबग की वजह से है। फायरबग अक्षम करें और अच्छी तरह से काम करें। लेकिन कोड डीबग करने के लिए फायरबग की जरूरत है। मुझे इस कुंजी 'extension.firebug.allowDoublePost' में लगभग: config नहीं दिखाई देता है। – vsingh

+0

मुझे इसके बारे में 'extension.firebug.allowDoublePost' भी नहीं मिला: config। मैं फ़ायरफ़ॉक्स 5.0 का उपयोग फ़ायरबग के साथ कर रहा हूं 1.7.3 –

1

फ़ायरफ़ॉक्स में एक बार मेरे साथ ऐसा हुआ - यह कुछ परिस्थितियों में हो सकता है जब आप "स्रोत देखें"। फायरबग डबल-पोस्ट एक समान समस्या की तरह लगता है।

अंत में, हालांकि, यह एक अच्छी बात है जिसे आपने अभी पकड़ा - यह बुरा होगा अगर क्रेडिट कार्ड को डबल चार्ज करना ऑर्डर देने के बाद बैक बटन पर क्लिक करना उतना आसान हो सकता है। (और एक ई-कॉमर्स कंपनी के लिए डेवलपर के रूप में, मैं आपको बता सकता हूं कि यह हर समय होता है। यदि आपकी चेकआउट प्रक्रिया में चार चरण/पृष्ठ हैं, तो बस कल्पना करें कि आप एक नया चरण 3 खोलकर बर्बाद कर सकते हैं ब्राउज़र विंडो, पहली विंडो में पिछले चरण पर वापस आना, फिर दूसरी ब्राउज़र विंडो में ऑर्डर को पूरा करना ... मेरा विश्वास करो, मैंने कड़ी मेहनत सीखी है। आप आश्चर्यचकित होंगे कि लोग उस हवाई के आसपास क्या करते हैं चरण 3 पर शिपिंग अधिभार गणना।)

गैर एक समाधान है; दूसरा, उस पृष्ठ पर एक सैनिटी चेक करने के लिए है जो क्रेडिट कार्ड को संसाधित करता है। अपने डेटाबेस में देखें और कहें "एक मिनट प्रतीक्षा करें ... यह आदेश पहले ही चार्ज हो चुका है!" फिर एक सुंदर त्रुटि संदेश के साथ उल्टी। उम्मीद है की यह मदद करेगा!

4

यह फ़ायरबग नहीं हो सकता है।

पिछले साल मेरे पास एक समान समस्या थी (हालांकि, मेरे मामले में, यह एक स्टैंडअलोन मीडिया फ़ाइल देखने पर अंतहीन जीईटी अनुरोधों का अनुक्रम था: जीआईएफ, जेपीजी, डब्लूएमवी, आदि)।

मैंने अपने सभी एक्सटेंशन अक्षम कर दिए और फिर एक बार में उन्हें फिर से सक्षम करने का प्रयास किया, यह देखने के लिए कि क्या यह समस्या पैदा कर रहा है, प्रत्येक एक्सटेंशन को जांच रहा है। यह मेरे मामले में, स्काइप एक्सटेंशन साबित हुआ।

तो दूसरे हाथ के ज्ञान पर भरोसा न करें कि यह फ़ायरबग है। यदि आप वास्तव में समस्या पर ध्यान देते हैं, तो आप पाएंगे कि यह पूरी तरह से कुछ और है।

+1

मैं इस कथन से सहमत हूं। मेरे पास फ़ायरबग 1.7.3 ने फ़ायरफ़ॉक्स 5.0 ब्राउज़र स्थापित किया है, इसे अक्षम कर दिया है और अभी भी डुप्लिकेट अनुरोध भेजे जा रहे हैं। यह सिर्फ एक फ़ायरफ़ॉक्स मुद्दा हो सकता है ... –

0

यहां महान प्रतिक्रियाओं के लिए धन्यवाद। मेरे मामले में यह फ़ायरफ़ॉक्स 2.0.0.20 के साथ फ़ायरबग (संस्करण 1.05) हो गया है। एक बार जब मैंने फायरबग ऐड-इन बंद कर दिया, तो डबल पोस्ट बंद हो गए।

1

भले ही गैर इस समस्या के लिए आपका समाधान न हो, फिर भी आपको एक गैर-निरंतर होना चाहिए! यह किसी भी प्रकार की साइट के लिए बहुत महत्वपूर्ण है जहां एक व्यक्ति किसी और को कुछ करने में चाल करना चाहता है (जैसे कहीं भी पैसा शामिल है)। इसे क्रॉस-साइट अनुरोध जालसाजी कहा जाता है, और आमतौर पर एक गैर-अवरुद्ध द्वारा अवरुद्ध किया जाता है। यदि आपको अधिक जानकारी चाहिए तो http://en.wikipedia.org/wiki/CSRF देखें।