ما هو الحد الأقصى الممكن طول سلسلة الاستعلام?

StackOverflow https://stackoverflow.com/questions/812925

  •  03-07-2019
  •  | 
  •  

سؤال

هو متصفح مستقلة ؟ كما فعل مختلفة على شبكة الإنترنت أكوام مختلفة قيود على مقدار البيانات التي يمكن الحصول عليها من الطلب ؟

هل كانت مفيدة؟

المحلول

RFC 2616 (Hypertext Transfer Protocol — HTTP/1.1) الدول لا يوجد حد لطول سلسلة استعلام (القسم 3.2.1). RFC 3986 أيضا لا يوجد حد, ولكن يشير إلى اسم المضيف محدودة بـ 255 حرفا بسبب DNS القيود (القسم 2.3.3).

في حين أن المواصفات لم تحدد أي أقصى طول حدود عملية مفروضة من قبل مستعرض ويب وبرنامج الخادم.استنادا إلى البحوث وجدت في Boutell.com:

  • مايكروسوفت إنترنت إكسبلورر (متصفح)
    مايكروسوفت الأمريكية أن الحد الأقصى لطول URL في متصفح Internet Explorer هو 2,083 الشخصيات ، مع عدم وجود أكثر من 2,048 الشخصيات في مسار جزء من URL.محاولات استخدام عناوين url أطول من هذا ينتج رسالة خطأ واضح في Internet Explorer.

  • مايكروسوفت الحافة (المتصفح)
    الحد يبدو حول 81578 الشخصيات.انظر URL طول الحد من مايكروسوفت الحافة

  • كروم
    يتوقف عرض URL بعد 64 كيلو الشخصيات ، ولكن يمكن أن تكون أكثر من 100 حرف.لا مزيد من الاختبار تم القيام به بعد ذلك.

  • Firefox (المتصفح)
    بعد 65,536 الشخصيات, بار الموقع لم يعد يعرض عنوان URL في ويندوز فايرفوكس 1.5.x.ومع ذلك ، يعد عناوين العمل.لا مزيد من الاختبار تم القيام به بعد 100 ، 000 حرفا.

  • سفاري (متصفح)
    على الأقل 80,000 شخصيات العمل.الاختبار كان لا حاولت أبعد من ذلك.

  • أوبرا (متصفح)
    على الأقل 190,000 شخصيات العمل.توقفت اختبار بعد 190,000 الشخصيات.أوبرا 9 ويندوز واصلت عرض للتحرير الكامل ، copyable و pasteable URL في شريط الموقع حتى في 190,000 الشخصيات.

  • Apache (الملقم)
    المحاولات المبكرة لقياس أقصى طول URL في متصفحات الويب اصطدم خادم URL حد طول ما يقرب من 4000 الشخصيات ، وبعد أباتشي تنتج "413 كيان كبير جدا" خطأ.الحالي حتى الآن أباتشي بناء العثور عليها في Red Hat Enterprise Linux 4 تم استخدامها.الرسمية أباتشي الوثائق فقط يذكر أحد 8,192 بايت الحد على الفرد الميدانية في الطلب.

  • ملقم معلومات إنترنت لـ Microsoft (Server)
    الحد الافتراضي هو 16,384 الشخصيات (نعم, Microsoft ملقم ويب يقبل أطول عناوين المواقع من مايكروسوفت متصفح ويب).هذا هو شكلي.

  • بيرل HTTP::Daemon (الخادم)
    ما يصل إلى 8000 بايت العمل.تلك بناء تطبيق ويب ملقمات مع Perl HTTP::Daemon وحدة سوف تواجه مجموعة 16,384 البايت الحد الأقصى مجتمعة حجم كل طلب HTTP headers.وهذا لا يشمل ما بعد طريقة شكل البيانات ، تحميل الملفات ، وما إلى ذلك ، ولكنها لا تتضمن عنوان URL.في الواقع هذا أدى إلى 413 خطأ عندما URL أطول بشكل ملحوظ من 8000 الشخصيات.هذا القيد يمكن إزالتها بسهولة.البحث عن كافة تواجدات 16x1024 في الشيطان.مساء واستبدالها قيمة أكبر.بالطبع, هذا لا يزيد التعرض إلى هجمات الحرمان من الخدمة.

نصائح أخرى

وعلى الرغم من أن رسميا لا يوجد حد، تنص العديد من التوصيات تكوين الأمان التي maxQueryStrings في الخادم يجب تعيين لعدد الأحرف المسموح به 1024 في حين أن عنوان الموقع بأكمله بما في ذلك سلسلة الاستعلام يجب تعيين حد أقصى 2048 حرفا. وهذا لمنع البطيء HTTP طلب الضعف على خادم الويب لمنع هجمات DDOS البطيئة التي تظهر على الماسح Qualys تطبيق ويب وغيرها من الماسحات الأمنية.

ويرجى الاطلاع على التعليمات البرمجية أدناه ويندوز ملقمات IIS مع الملف web.config:

<security>
    <requestFiltering>
        <requestLimits maxQueryString="1024" maxUrl="2048">
           <headerLimits>
              <add header="Content-type" sizeLimit="100" />
           </headerLimits>
        </requestLimits>
     </requestFiltering>
</security>

ومختلفة مداخن الويب تفعل دعم أطوال مختلفة من-طلبات HTTP. أنا أعرف من التجربة أن أكوام الأولى من سفاري معتمدة فقط 4000 حرف وجدت صعوبة التعامل مع صفحات ASP.net بسبب USER-STATE الآن. هذا هو حتى لآخر، لذلك سيكون لديك للتحقق من المتصفح ونرى ما هو الحد المكدس. أعتقد أنك قد تصل إلى حد حتى على المتصفحات الحديثة. لا أستطيع أن أتذكر ولكن واحد منهم (IE6، على ما أظن) لديه الحد من الحد 16-بت، 32،768 أو شيء من هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top