2013-02-14 109 views
5

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

हमने पाया है कि जैसे ही ये रूप बढ़ते हैं, वहां एक बिंदु है जहां एक फॉर्म पोस्ट होने पर सर्वर 500 त्रुटियों को फेंक देगा।

परीक्षण चलाने के बाद, मैं यह पाया कि सर्वर 100 फ़ील्ड के साथ फ़ॉर्म को संभाल सकता है; एक बार 101 या अधिक फ़ील्ड का उपयोग किया जाता है, तो हमें त्रुटियां मिलती हैं।

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

मुझे लगता है कि आईआईएस 7.5 में कुछ सेटिंग है जहां हम इस सीमा को बढ़ा सकते हैं। मैंने वेब पर खोज की है, लेकिन मुझे लगता है कि इस डेटा की बाइट-आकार सीमाओं को कैसे बढ़ाया जाए, किसी भी प्रकार की फ़ील्ड की अनुमति नहीं है।

तो, क्या मैं यह मानने में सही हूं कि इसे बदला जा सकता है, और यदि ऐसा है, तो यह कैसे किया जा सकता है?

उत्तर

13

यह हॉटफिक्स एपीएसबी 12-06 के साथ पेश की गई एक समस्या है। हालांकि यह एक ColdFusion त्रुटि है, तो लोगों को receiving the error in Tomcat, before it supposedly hit the CF server

सूचना दी है neo-runtime.xml में एक सेटिंग जो postsizelimit को परिभाषित करता है नहीं है - और 100

पूर्ण सूचनाएं here स्थित हैं, लेकिन यहाँ लघु संस्करण है सामान्य रूप से किया जाता है।

इस हॉट फिक्स में कोल्डफ्यूजन, पोस्ट पैरामीटर सीमा में एक नई सेटिंग है। यह सेटिंग पोस्ट अनुरोध में पैरामीटर की संख्या को सीमित करती है। डिफ़ॉल्ट मान 100 है। यदि किसी पोस्ट अनुरोध में निर्दिष्ट पैरामीटर शामिल हैं, तो सर्वर अनुरोध को संसाधित नहीं करता है और अपवाद फेंकता है। यह प्रक्रिया हैश टक्कर का उपयोग कर डीओएस हमले के खिलाफ सुरक्षा करती है। यह सेटिंग पोस्ट आकार सीमा (कोल्डफ्यूजन व्यवस्थापक> सेटिंग्स> पोस्ट डेटा का अधिकतम आकार) से अलग है। यह सेटिंग कोल्डफ्यूजन व्यवस्थापक कंसोल में प्रकट नहीं हुई है। लेकिन आप आसानी से इस सीमा को neo-runtime.xml फ़ाइल में बदल सकते हैं। नीचे बिंदु 5 देखें। ग्राहक जो पोस्ट पैरामीटर लिमिट को बदलना चाहते हैं, सर्वर इंस्टॉलेशन के लिए {ColdFusion-Home}/lib पर जाएं या {ColdFusion-Home}/WEB-INF/cfusion/multiserver या J2EE स्थापना के लिए lib। लाइन के बाद, फ़ाइल neo-runtime.xml खोलें।

<var name='postSizeLimit'><number>100.0</number></var> 

नीचे लाइन जोड़ें और आप वांछित संख्या के साथ 100 बदल सकते हैं।

<var name='postParametersLimit'><number>100.0</number></var> 

CF10 + सेटिंग Server Settings -> Settings तहत Maximum number of POST request parameters तहत सीएफ व्यवस्थापक सेटिंग पृष्ठ में संपादित करने के लिए उपलब्ध है।

हमारे 9.0.1 सर्वर पर, हमने बस सेटिंग को 10000 तक बढ़ा दिया और कोई प्रतिकूल प्रभाव नहीं देखा।

+0

जानकारी के लिए धन्यवाद! मुझे लगता है कि वास्तव में इस्तेमाल होने के लिए सीएफ सर्वर को पुनरारंभ करने की आवश्यकता होगी? इसके अलावा, अगर यह त्रुटि को फेंकने वाला कोल्डफ्यूजन था, तो क्या आप जानते होंगे और कारण यह है कि यह त्रुटियों अनुभाग में सीएफ सर्वर मॉनीटर में लॉग क्यों नहीं होगा? – jzimmerman2011

+0

मुझे विश्वास है। मुझे पता है कि हम बस सुनिश्चित करने के लिए किया था। मुझे सच में यकीन नहीं है कि समस्या वेब सर्वर समस्या बनाम सीएफ सर्वर के रूप में क्यों दिखाई देती है, लेकिन सर्वर मेरे सिर स्पिन बनाते हैं। –

+1

@ phantom42 अनुरोध सर्वर स्तर के बजाय कनेक्टर स्तर पर अनुरोध को खारिज कर दिया जा रहा है। इसका मतलब है कि एप्लिकेशन सर्वर को अनुरोध के किसी भी हिस्से को कभी भी संसाधित नहीं करना पड़ता है, लेकिन जाहिर है यह इसे वेब सर्वर समस्या की तरह दिखता है। (iis निश्चित रूप से इसका उचित हिस्सा है) –

6

मेरा मानना ​​है कि आप कोल्डफ्यूजन की सुरक्षा सुविधा के खिलाफ उछाल रहे हैं। क्या आप कोल्डफ्यूजन संस्करण चल रहे हैं? ColdFusion Security Hotfix APSB12-06 में उन्होंने हैश टकराव का उपयोग करके डीओएस हमले से बचाने के लिए एक फिक्स पेश किया।उस पृष्ठ से:

यह हॉटफिक्स कोल्डफ्यूजन, पोस्ट पैरामीटर सीमा में एक नई सेटिंग लागू करता है। यह पोस्ट अनुरोध में पैरामीटर की संख्या को सीमित करता है। डिफ़ॉल्ट मान 100 है। यदि किसी पोस्ट अनुरोध में निर्दिष्ट के रूप में अधिक पैरामीटर शामिल हैं, तो सर्वर अनुरोध को संसाधित नहीं करेगा और अपवाद फेंक देगा। यह हैश टक्कर का उपयोग कर डीओएस हमले से बचाने के लिए किया जाता है। यह सेटिंग पोस्ट आकार सीमा से अलग है (कोल्डफ्यूजन व्यवस्थापक> सेटिंग्स> पोस्ट डेटा का अधिकतम आकार)। हम कोल्डफ़्यूज़न व्यवस्थापक कंसोल में इस सेटिंग को उजागर नहीं कर रहे हैं, लेकिन यह सीमा को neo-runtime.xml फ़ाइल में आसानी से बदला जा सकता है। नीचे बिंदु 5 देखें।

उस पृष्ठ पर भी उस सीमा को बढ़ाने के निर्देश हैं। असल में आपको अपनी नियो-रनटाइम.एक्सएमएल फ़ाइल में बदलाव करना होगा।

जिन ग्राहकों ने postParameterLimit बदलना चाहते हैं, सर्वर स्थापना के लिए {ColdFusion-Home}/lib या {ColdFusion-Home}/WEB-INF/cfusion/lib Multiserver या J2EE स्थापना के लिए पर जाएँ। फ़ाइल के बाद ओपन फ़ाइल neo-runtime.xml,

<var name='postSizeLimit'><number>100.0</number></var> 

नीचे दी गई रेखा जोड़ें और आप वांछित संख्या के साथ 100 बदल सकते हैं।

<var name='postParametersLimit'><number>100.0</number></var>