আইআইএস vs বনাম আইআইএস and এবং আইআইএস .5.৫: বেসে প্লাস চিহ্ন (+) সহ ইউআরএলগুলি পরিচালনা করা (ক্যোরিস্ট্রিং নয়)


38

বেস ইউআরএল (কোয়েস্ট্রিং নয়), প্লাস চিহ্ন (+) সহ যে কোনও URL- এর জন্য, আইআইএস 7 এবং আইআইএস .5.৫ (উইন্ডোজ সার্ভার ২০০৮ এবং ২০০৮ আর ২) কোনও এএসপি.নেট অ্যাপ্লিকেশনটিতে ইউআরএলটি ডিফল্ট হ্যান্ডলারের কাছে ফরোয়ার্ড করতে উপস্থিত হবে না appear । আমি কাস্টম এইচটিটিপি হ্যান্ডলারটি দিয়ে বিষয়টি লক্ষ্য করা শুরু করেছি *.htmlতবে আমারও একই সমস্যা রয়েছে *.aspx। আইআইএস 6 (সার্ভার 2003) এর একই URL গুলিতে সমস্যা নেই।

সমস্যাটির অনুলিপি করতে, একটি এএসপি.এনইটি সাইটে, আমি এএসপিএক্স ফাইলগুলির একটি সেট তৈরি করেছি যা একটি সাধারণ রেসপন্স করেছে। বিভিন্ন নামের সাথে লেখুন:

  1. test_something.aspx
  2. test_some + + thing.aspx
  3. পরীক্ষার_সামান্য জিনিস.এসপিএক্স

তৃতীয় ফাইলটি এটি পরীক্ষা করে দেখার জন্য ছিল যে আইআইএস 7 [.5] প্লাস প্রতীকগুলিকে ফাঁকা স্থান হিসাবে দেখছে (এটি ক্যোয়ারস্ট্রিংয়ের মতো হবে); এই ক্ষেত্রে মনে করা হয় না. এই সমস্ত ফাইলের জায়গায়, হিট http://somehost/test_some+thing.aspxবা http://somehost/test_some%2bthing.aspxকোনও এএসপি.নেট হ্যান্ডলারের কাছে যাওয়ার আগে আইআইএস 6 এ 404 আইআইএস 7 / আইআইএস 7.5 এ কাজ করবে বা ঠিকঠাক কাজ করবে। আইআইএস / / .5.৫ এ এমন কোনও কনফিগারেশন রয়েছে যা এইচটিটিপি হ্যান্ডলার নির্ধারণের জন্য ব্যবহৃত চূড়ান্ত এক্সটেনশনটি হারিয়ে না রেখে আমি ইউআরএলে একটি "প্লাস সাইন" দেখতে পাওয়া অনুপস্থিত?


আমি ভাবছি যে প্লাস চিহ্নটি দিয়ে পালাতে সহায়তা করবে কিনা। হতে পারে \+?
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

উত্তর:


39

আইআইএস এবং প্লাসের আরও সংমিশ্রণের সন্ধান করার পরে দেখা যায় যে আইআইএস 7 [.5] অক্ষরটি ব্যবহারের ভয়ে কিছুটা ভয়ে ডিফল্টরূপে প্লাস চিহ্ন সহ URL টি প্রত্যাখ্যান করার জন্য সেট আপ করা হয়েছে; যদিও এই চিহ্নটি ক্যোরিস্ট্রিংয়ে এখনও অনুমোদিত। সমাধান উপর requestFiltering অ্যাট্রিবিউট ডিফল্ট পরিবর্তন করা হয় <system><webServer><security><requestFiltering>একটি কমান্ড লাইন কলের মাধ্যমে দোকর এনকোডেড অক্ষর করার অনুমতি (পরিণামে পরিবর্তন আপনার ASP.NET web.config):

%windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:system.webServer/security/requestFiltering -allowDoubleEscaping:true

এটি তাদের ওয়েবসাইটের সাথে থাকতে পছন্দ করার চেয়ে কিছুটা বেশি বিপজ্জনক হতে পারে তবে কম্বল অনুমতি দেওয়ার চেয়ে সুনির্দিষ্ট হওয়ার উপায় নেই বলে মনে হয়। সতর্কতাগুলি এমন কোনও অমিলের বিষয়ে ছিল যা কোনও ইউআরএলটিতে প্লাস ব্যবহার এবং একটি স্থান হিসাবে এর আদর্শ অনুবাদগুলির মধ্যে ঘটতে পারে। দেখে মনে হচ্ছে একমাত্র অন্য বিকল্প হ'ল আপনার ইউআরএলগুলিতে প্লাস অক্ষর ব্যবহার করা বন্ধ করুন।


2
কেবলমাত্র একটি এফওয়াইআই: আপনাকে মূল স্তরের টেমপ্লেটে এটি করতে হবে না। এটি যে কোনও ওয়েবকনফাইগ ফাইলে করা যেতে পারে বা <লোকেশন /> ট্যাগ সহ একটি সাবফোল্ডারে প্রয়োগ করা যেতে পারে।
mdonatas

আইআইএস ব্যবস্থাপকটিতে: সাইটগুলি => আপনার সাইট => ফিল্টারিংয়ের জন্য অনুরোধ করুন => বৈশিষ্ট্য সেটিংস সম্পাদনা করুন ... => ডাবল পলায়নের অনুমতি দিন>> ঠিক আছে
ডায়নেভালা

9

আমি কেবল ইউআরএলগুলিতে স্পেসে প্লাসগুলি মানচিত্রের জন্য আইআইএস 7 কে বোঝাতে পুনর্লিখনের নিয়ম কীভাবে তৈরি করব তা সন্ধান করেছি। আমার ক্ষেত্রে এটি ছিল লিগ্যাসি বুকমার্ক বা হাইপারলিঙ্কগুলি কাজ করা।

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering allowDoubleEscaping="True" />
    </security>
    <rewrite>
      <rules>
        <rule name="RewriteUserFriendlyURL1" stopProcessing="false">
          <match url="\+" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="{UrlDecode:{REQUEST_URI}}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

আরও বিশদ এবং উল্লেখের জন্য আমার ব্লগ পোস্ট দেখুন ।


1
আমি এমন একটি সমস্যার সমাধান করেছি যেখানে উপরের সিকিউরিটি বিভাগটি যেমন "ডুবেলএস্কেপিং" "সত্য" এ সেট করে সেটিংস ব্যবহার করে কোয়েরি স্ট্রিংয়ের প্লাস চিহ্নগুলির সাথে লেগ্যাসি ইউআরএলগুলি সমর্থন করতে হয়েছিল।
স্টিফেন

আমার একটি অনন্য কেস রয়েছে - কিছু লিগ্যাসি ইউআরএলটির দুটি অনুক্রমিক অনুভূতি রয়েছে, যেমন "++"। আইআইএস এর বিরুদ্ধে একটি বিশেষ নিয়ম আছে বলে মনে হচ্ছে। কোন ধারনা?
বুমহাউয়ার

@ বুমহাউয়ার আপনার কোনও হ্যান্ডলার লেখার প্রয়োজন হতে পারে ... বা এই URL গুলো হোস্ট করার জন্য কোনও ভিন্ন ওয়েবসার্ভার ব্যবহার করতে পারেন? একসময় আমি অ্যাপাচি মড_আরাইটকে হ'ল একগুচ্ছ লেগ্যাসি ইউআরএল তৈরি করেছি এবং সেগুলি বিভিন্ন নতুন জায়গায় পুনর্নির্দেশ করেছি এবং এটি কিছুটা নমনীয় মনে হয়েছিল।
নাথান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.