2011-05-31 16 views
17

के बजाय जीईटी के रूप में यादृच्छिक रूप से सबमिट किया जा रहा है यह पागल है।पोस्ट

यहाँ हमारे OpenID provider पर एक फार्म है:

<form method="post" action="/affiliate/form/login/submit?affId=7" autocomplete="off"> 
    <table class="position-table"> 
     <tr> 
     <td class="input-td"> 
      <input class="framed-text-field" type="text" name="email" id="email" value="" maxlength="100" /> 
      <span class="form-help">[email protected]</span> 
     </td> 
     <td class="input-td"> 
      <input class="framed-text-field" type="password" name="password" id="password" /> 
      <span class="form-help">Password</span> 
     </td> 
     <td></td> 
     <td class="input-td"> 
      <input type="submit" class="affiliate-button" value="Sign In" /> 
     </td> 
     </tr> 
    </table> 
    <input type="hidden" id="fkey" name="fkey" value="REDACTED" /> 
    </form> 

यह फार्म (/affiliate/form/login पर) एक पृष्ठ के भाग के एक iframe में होस्ट किया गया। आईटीआरएएम एचटीटीपीएस पर होस्ट किया जाता है, HTTP पर होस्ट पेज। आप इसे एक गुप्त/निजी-ब्राउज़िंग/अश्लील-मोड ब्राउज़र विंडो का उपयोग करके /users/login पर कार्रवाई में देख सकते हैं।

तो यहां समस्या है, समय-समय पर (लेकिन लगातार) कोई उपयोगकर्ता इस यूआरएल में पोस्ट के बजाय प्राप्त करेगा। यह एक बेहद कम घटना है, जो 50 से कम उपयोगकर्ताओं को आज तक प्रभावित करती है।

मैं सिर्फ dev/null इन त्रुटियों (कोई कार्रवाई नहीं की विधि आदि आदि), लेकिन ...

ये वास्तविक उपयोगकर्ताओं की तरह लग रहे परीक्षा कर रहा हूँ: आईपी के व्यापक प्रसार, विविध और मान्य उपयोगकर्ता एजेंट, और विश्वसनीय समय। निराशाजनक रूप से, वही उपयोगकर्ता कभी-कभी सफलतापूर्वक थोड़ी देर बाद उसी फ़ॉर्म को पोस्ट करते हैं।

कोई विचार क्या हो सकता है?

विचार मैं था और खारिज कर दिया गया है:

  • HTTPS त्वरक या लोड संतुलन munging का अनुरोध करता है
    • जाँच भेजे लॉग, उनका मिलान क्या एप्लिकेशन
  • एएसपी/करने के लिए हो रही है। एनईटी अनुरोध पार्सिंग त्रुटि
    • लॉग इन करने के लिए आने वाले es, वे
  • छोटी गाड़ी ब्राउज़र
      कई Chrome संस्करणों में
    • लॉग इन घटनाओं, Firefox 4, सफारी, और मोबाइल सफारी
  • बॉट, या फालतू ब्राउज़र एक्सटेंशन
    • वाइड से मेल खाते हैं ब्राउज़र, आईपी, और ओएस फैल गया।

मेरे वर्तमान सबसे अच्छा अनुमान है कि कार्रवाई में ?affId=# कुछ ट्रिपिंग है (हालांकि नहीं लगातार फिर से) है। यह मूल रूप से वूडू डीबगिंग है, इसलिए मुझे अधिक आधिकारिक स्पष्टीकरण पसंद आएगा।


अद्यतन: मेरी वूडू ठीक (<input type="hidden" name="affId" value="#" /> और इसी तरह) की कोशिश की, और को तैनात किया। एक repro नहीं मिला है, तो मैं बस इसे सेंकना दे रहा हूँ।

हम औसतन एक दिन देखते हैं, इसलिए यदि यह बिना किसी मुद्दे के 2+ के लिए बनाता है तो मैं इसे उत्तर के रूप में पोस्ट करूंगा।


दूसरा अपडेट: नहीं, अभी भी हो रहा है। हालांकि बहुत कम बार। मैं ब्राउज़र या ऑपरेटिंग सिस्टम के मामले में कोई समानता देखने के लिए अधिक डेटा एकत्र कर रहा हूं।

कार्रवाई से ?affId=# को हटाने के कारण ऑपरेटिंग सिद्धांत कम हो गया है, ग्राहकों के सामने बग्गी प्रॉक्सी है जो "जीईटी को सुरक्षित रखने वाली चीजें" लाती है। यह एक जंगली अनुमान है, इसलिए नमक के अनाज के साथ इसका इलाज करें।


तीसरा अद्यतन: फर्जी प्रॉक्सी के लिए अधिक सबूत। प्रभावित आईपी के लिए लॉगिंग क्वेरी (समय की अधिक अवधि में), और उनमें से कई को अधिकतर अप्रभावित लोगों की तुलना में बहुत अधिक अनुरोध दरें हैं। यह 100% कट और सूखा नहीं है, और मुझे यकीन है कि कुछ निराशाजनक ताज़ा करने के लिए एक ताड़ की गणना बढ़ रही है लेकिन ... यह अभी भी एक उचित संकेतक है (अंतर 5x या तो प्रभावित आईपी के लिए इसी अवधि में अनुरोधों का # है)।

इस बिंदु पर, मैं त्रुटि का पता लगाने और बेहतर त्रुटि संदेश और मार्गदर्शन प्रदान करने के लिए आगे बढ़ रहा हूं। बल्कि वास्तव में एक आधिकारिक उत्तर प्राप्त करने के बारे में असंवेदनशील, विशेष रूप से उस उत्तर के रूप में "कोड मैं नियंत्रण नहीं करता" के दायरे में झूठ बोलने की संभावना प्रतीत होता है।

+0

क्या कोई जावास्क्रिप्ट कोड है जो फ़ॉर्म की विधि के साथ झुका हुआ हो सकता है? जीईटी डिफ़ॉल्ट है, इसलिए यदि पैरामीटर किसी भी तरह से हटा दिया गया था, तो वह उस पर वापस आ जाएगा। हालांकि, दूर तक पहुंचे। क्या आता है यह देखने में रूचि है। –

+0

@ पेक्का - नहीं। साइट पर सभी जावास्क्रिप्ट [यहां] (https://openid.stackexchange.com/Content/js/master.js) पाए जा सकते हैं। बिल्कुल एक जगह है जो रूपों के साथ गड़बड़ है; और यह 'विधि' को स्पर्श नहीं करता है। यह भी ध्यान में रखते हुए कि उनमें से कुछ टिप्पणियां बहुत हैं ... गलत (फिक्सिंग!)। –

+0

अजीब। क्या फॉर्म वैल्यू जीईटी अनुरोध में भेजे जाते हैं, या क्या यह केवल यूआरएल वाला डेटा है? –

उत्तर

3

कुछ विज्ञापन-अवरुद्ध ब्राउज़र एक्सटेंशन जैसे AdBlock Plus Popup addon 'जांच' साथी पृष्ठ उनके वास्तविक URL को निर्धारित करने से पहले कि उन्हें अवरोधित करना है या नहीं। विशेष रूप से, उपर्युक्त पॉपअप एडन डिफ़ॉल्ट रूप से HEAD क्वेरी के साथ करता है लेकिन इसे GET क्वेरी करने के लिए सेट किया जा सकता है।

0

सुनिश्चित करें कि स्रोत HTML एक वैधकर्ता के माध्यम से इसे चलाकर अच्छी तरह से स्वरूपित है।

1

क्रोम उपयोगकर्ताओं के साथ एक ही समस्या थी और कारण यह था कि कोई व्यक्ति Google क्रोम में Shift + Enter का उपयोग करके कोई फॉर्म सबमिट करता है, ब्राउज़र नया टैब खोल देगा और बिना किसी पैरामीटर के अनुरोध प्राप्त करेगा। चूंकि लोगों के पास अक्सर पासवर्ड के अंतिम चरित्र के रूप में अपरकेस/विशेष चरित्र होता है, इसलिए वे शिफ्ट जारी करने से पहले एंटर दबाते हैं और फिर अनुरोध जारी किया जाता है।

मुझे लगता है कि ब्राउजर की गणना करते समय आपने क्रोम का पहला उल्लेख किया है, इसलिए यदि क्रोम में समस्या अक्सर होती है, तो शायद इस कारण से यह संभवतः है।

हालांकि यह शायद आपके पास एकमात्र मुद्दा नहीं है, यह शायद योगदान देता है।

संबंधित मुद्दे