একটি 302 পুনর্নির্দেশ রেফারার স্ট্রিং বজায় রাখবে?


92

আমার ব্যবহারকারীকে এক পৃষ্ঠা থেকে অন্য পৃষ্ঠায় পুনঃনির্দেশ করা দরকার, তবে আমার মূল রেফার স্ট্রিং বজায় রাখতে হবে। সুতরাং, উদাহরণস্বরূপ, যদি তারা http://www.othersite.com/pageA.jsp থেকে শুরু করে , একটি লিঙ্কে ক্লিক করুন যা তাদেরকে http://www.example.com/pageB.jsp এ নিয়ে যায় , যা একটি 302 কার্যকর করে http://www.example.com/pageC.jsp এ পুনঃনির্দেশ করুন , এতে আমার রেফারিং স্ট্রিং দরকারhttp://www.othersite.com/pageA.jsp

এটি কি 302 পুনর্নির্দেশের জন্য স্বাভাবিক আচরণ? নাকি আমার আসল রেফারারকে বাদ দেওয়া হবে http://www.example.com/pageB.jsp? এটি কাম্য হবে না।

আমি জানি না যে এটির কোনও পার্থক্য রয়েছে কিনা তবে আমি জেএসপিতে কাজ করছি এবং আমি response.sendRedirect()302 পুনর্নির্দেশ কার্যকর করতে ব্যবহার করছি ।

আমার উল্লেখ করা উচিত যে আমি এটি নিয়ে একটি পরীক্ষা করেছি এবং এটি মনে হয় যে মূল রেফার স্ট্রিংটি ( http://www.othersite.com/pageA.jsp) রেখেছিল তবে আমি কেবল এটি নিশ্চিত করতে চেয়েছিলাম যে এটি স্বাভাবিক ডিফল্ট আচরণ ছিল, এবং আমার শেষের দিক থেকে কিছু অদ্ভুত নয়।


যদিও আমি বর্তমানে একটি 302 পুনর্নির্দেশ ব্যবহার করছি, আমি সম্ভবত পরিবর্তে 301 পুনর্নির্দেশটি ব্যবহার করতে পারি। 301 পুনঃনির্দেশগুলির জন্য আচরণটি যদি আরও নির্ভরযোগ্য হয় তবে আপনি কি জানেন?


4
আমার ঠিক বিপরীত দরকার। পুনর্নির্দেশে রেফারার পরিবর্তন করে কোনও সার্ভার-সাইড পুনর্নির্দেশ করুন (সুতরাং আসল রেফারার মুছে ফেলা)। যে কেউ?
সিআরসি ক্র্যাক

উত্তর:


33

সংক্ষিপ্ত উত্তরটি রেফারার শিরোনাম বা 302 স্থিতির কোডের জন্য প্রাসঙ্গিক আরএফসি 2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36 এ নির্দিষ্ট করা হয়নি ।

আপনার সেরা বাজি হ'ল বেশ কয়েকটি ব্রাউজারের সাথে একটি পরীক্ষা করা এবং দেখুন aক্যমত্যের আচরণ আছে কিনা।

পূর্ণ বেল্ট এবং ধনুর্বন্ধনী জন্য, পুনঃনির্দেশ URL এ মূল রেফারাকে এনকোড করুন যাতে আপনি এটি পুনরুদ্ধারের গ্যারান্টি দিতে পারেন।


19
: যাকে এটা আগ্রহী হতে পারেন, আমি প্রধান ব্রাউজারে spme পরীক্ষা করেনি stackoverflow.com/questions/2158283/...
মার্কো Demaio

121

আমি 302 সম্পর্কে জানি না, তবে আমি আজ কয়েকটি ব্রাউজারে 301 টি পরীক্ষা করেছি, ফলাফল এখানে:

দৃশ্যকল্প : ব্যবহারকারী ক্লিক domainX উপর লিঙ্ক আছে যা ডোমইন পয়েন্ট। ডোমেনএ একটি 301 ডোমেনবিতে পুনর্নির্দেশ করে।

  • IE8 refererযখন domainB উপর অবতরণ হল: domainX (এমনকি InPrivate ব্রাউজিং এবং ব্যবহার যখন এমনকি যখন ব্যবহারকারী নতুন ট্যাবে লিঙ্কটি খুলবে)
  • ডোমেনবিতে refererঅবতরণকালে সাফারি 4 হ'ল: ডোমেনএক্স (ব্যবহারকারী নতুন ট্যাবে লিঙ্ক খোলার পরেও)
  • FF3.6.10 refererএ ডোমেনবিতে অবতরণ করার সময় হ'ল: ডোমেনএক্স (ব্যবহারকারী নতুন ট্যাবে লিঙ্ক খোলার পরেও)
  • Chrome5 refererযখন domainB উপর অবতরণ হল: domainX ( যদি না ব্যবহারকারী নতুন ট্যাবে লিঙ্ক প্রর্দশিত)
  • ডোমেনবিতে refererঅবতরণের সময় Chrome26 হ'ল: ডোমেনএক্স (ব্যবহারকারী নতুন ট্যাবে লিঙ্কগুলি খুললেও)

27
দ্রষ্টব্য: এই পরীক্ষাটি কিছুক্ষণ আগে সম্পাদিত হয়েছে এবং আজকাল Chrome 26 নতুন ট্যাবে খোলার পরেও একইরকম আচরণ করে ।
বেনিয়ামিন

সমস্ত ব্রাউজারে পরীক্ষা করা হয়নি, তবে 302 এর আচরণ একইরকম বলে মনে হচ্ছে।
আমির আলী আকবরী

4
নোট: পুনঃনির্দেশ পৃষ্ঠা (ডোমইন) একটি প্রকাশ যদি রেফারার-নীতি: নো-রেফারার হেডার, তাহলে Chrome (এবং অপেরা) সেট করা হবে না একটি অ্যাকাউন্ট গন্তব্য পৃষ্ঠা (domainB) এর অনুরোধে হেডার। ফায়ারফক্স এবং এজ এখনও এটি প্রেরণ করে।
ডেভিড বালেক

12

ভাল প্রশ্ন. এই ক্ষেত্রে, রেফারার প্রেরণ পুরোপুরি ব্রাউজারের উপর নির্ভর করে (কারণ ব্রাউজারটিকে নতুন সংস্থানটিতে অন্য একটি অনুরোধ করার কথা বলা হয়)।

আরএফসি 2616 ইস্যুটি সম্পর্কে নীরব রয়েছে:

অনুরোধ করা সংস্থান অস্থায়ীভাবে আলাদা ইউআরআইয়ের অধীনে থাকে। যেহেতু উপলক্ষ্যে পুনঃনির্দেশটি পরিবর্তন করা যেতে পারে তাই ক্লায়েন্টটি ভবিষ্যতের অনুরোধগুলির জন্য অনুরোধ-ইউআরআই ব্যবহার চালিয়ে যাওয়া উচিত। এই প্রতিক্রিয়াটি কেবল ক্যাশেযোগ্য যদি ক্যাশে-নিয়ন্ত্রণ দ্বারা নির্দেশিত হয় বা হেডার ক্ষেত্রের মেয়াদ শেষ হয়।

আমি সঠিক ব্রাউজারটি প্রেরণ করতে ব্রাউজারকে বিশ্বাস করব না। আমি বাজি ধরেছি যে সেখানে কমপক্ষে একটি আছে যা অন্যের চেয়ে আলাদা কিছু প্রেরণ করে।

কর্মক্ষেত্র

যদি আপনি পারেন তবে ?override_referer=<old_url>আপনি যে URL এ পুনঃনির্দেশ করেছেন তাতে কেন কোনও প্যারামিটার যুক্ত করবেন না এবং HTTP_REFERER এর পরিবর্তে সেই মানটিকে বিশ্লেষণ করুন।

এইভাবে আপনি সর্বদা সঠিক ফলাফল পেতে নিশ্চিত হতে পারেন এবং আপনি সুরক্ষায় কোনও কিছু হারাচ্ছেন না: রেফারার যেভাবেই নকল হতে পারে।


4
আপনি ইউআরএল-এ রেফারাকে অতিমাত্রায় পরিবর্তন করে সুরক্ষার কিছুটা হারাচ্ছেন। বেশিরভাগ আধুনিক ব্রাউজারগুলিতে অ্যাজেএক্স অনুরোধগুলির রেফারার জাভাস্ক্রিপ্টের মাধ্যমে পরিবর্তন করা যায় না; তবে, ইউআরএল স্পষ্টতই পারে। এর অর্থ হল যে কোনও এক্সএসএস আক্রমণ হওয়ার পরে, রেফারার ইউআরএল পরমের চেয়ে বেশি বিশ্বাসযোগ্য। আমাকে ভুল করবেন না, রেফারার এখনও পরিষ্কারভাবে ব্যবহারকারীর ইনপুট যা পুরোপুরি বিশ্বাস করা যায় না। তবে ইউআরএল পরিবর্তন করার চেয়ে অন্য কারও জন্য ডেটাটি ছল করা আরও বেশি কঠিন।
phylae

7

আমার ওপোসাইট সমস্যা ছিল: আমি চেয়েছিলাম যে রেফারারটি "পেজবি" ছিল তবে নিরাময়কারী ব্রাউজারের কেউই এভাবে এগিয়ে যায়নি ...

সুতরাং আমি পেজবিতে একটি HTML পুনর্নির্দেশ দিয়ে চেষ্টা করেছি (301 বা 302 পুনর্নির্দেশের পরিবর্তে):

<meta http-equiv="refresh" content="0; url=pageC.jsp" />

এবং ফলাফল অবাক করা ছিল:

  • রেফারার ক্রোম সহ পেজবি
  • রেফারার হ'ল ফায়ারফক্স এবং আইই এমপিটিওয়াই!

আশা করি এটি সাহায্য করতে পারে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.