HttpServletRequest - রেফারিং ইউআরএল কিভাবে পাবেন?


144

আমার জাভা সার্লেটলে আমার সাইটের সংযোগকারী URL গুলি লগ করতে হবে।


আমি কি আপনাকে সঠিকভাবে বুঝতে পেরেছি যে আমি যদি আপনার সাইটটি গুগলে খুঁজে পেয়েছি এবং লিঙ্কটি খুলি তবে আপনি 'গুগল ডটকম' লগইন করেছেন?
রোমান

উত্তর:


310

এটি HTTP refererশিরোনামে উপলব্ধ । আপনি এটি নিম্নোক্তভাবে একটি সার্লেটে পেতে পারেন:

String referrer = request.getHeader("referer"); // Yes, with the legendary misspelling.

তবে আপনাকে বুঝতে হবে যে এটি একটি ক্লায়েন্ট-নিয়ন্ত্রিত মান এবং এইভাবে সম্পূর্ণ আলাদা বা এমনকি মুছে ফেলা এমন কিছুতে এটি ছদ্মবেশী হতে পারে। সুতরাং, এটি যেই মান ফিরে আসে, আপনার এটি ব্যাকএন্ডের কোনও সমালোচনামূলক ব্যবসায়িক প্রক্রিয়াগুলির জন্য ব্যবহার করা উচিত নয়, তবে কেবল উপস্থাপনা নিয়ন্ত্রণের জন্য (উদাহরণস্বরূপ লুকানো / দেখানো / নির্দিষ্ট খাঁটি বিন্যাসের অংশ পরিবর্তন করা) এবং / অথবা পরিসংখ্যান।

আগ্রহীদের জন্য, ভুল বানান সম্পর্কে পটভূমি উইকিপিডিয়ায় পাওয়া যাবে ।


2
এটি "রেফারার" এবং "রেফারার" কে কী পার্থক্য দেয়?
ante.sabo

7
@ অ্যান্ট: না, শিরোনামের অনুসন্ধানটি সংবেদনশীল নয়।
বালুসসি

2
নোট করুন যে কোনও শিরোনাম হতে পারে null
rd

@ বালুসসি যদি আমার আগের দুটি ইউআরএল প্রয়োজন হয়? এটা সম্ভব ?
এঞ্জেল কুয়েঙ্কা

26

প্রকৃতপক্ষে এটি: request.getHeader("Referer")বা আরও উন্নত এবং 100% নিশ্চিত হতে হবে request.getHeader(HttpHeaders.REFERER), যেখানে এইচটিপিএইচাইডার্সcom.google.common.net.HttpHeaders


11
পদ্ধতির জন্য জাভা EE এপিআই ডক্স থেকে getHeader(String name)(উদ্ধৃতি):"The header name is case insensitive."
informatik01

7
এইচটিপিএইচডিয়ার রেফারেন্সের জন্য যাইহোক আপভোট করুন। অ্যাপাচি এইচটিটিপি আর একটি ভাল:org.apache.http.HttpHeaders
বেরেট

16

URL গুলি অনুরোধ পাস করা হয়: request.getRequestURL()

আপনি যদি বোঝাচ্ছেন যে অন্যান্য সাইটগুলি আপনাকে লিঙ্ক করছে? আপনি এইচটিটিপি রেফারার ক্যাপচার করতে চান, যা কল করে আপনি যা করতে পারেন:

request.getHeader("referer");

6

সবাই যেমন উল্লেখ করেছে

request.getHeader("referer");

আমি গৃহীত উত্তরের বিপরীতে রেফার শিরোনামের সুরক্ষা দিক সম্পর্কে আরও কিছু বিশদ যুক্ত করতে চাই । ক্রস সাইট রিকোয়েস্ট ফোরজি (সিএসআরএফ) প্রতিরোধ চিট শিট এর অধীনে ওপেন ওয়েব অ্যাপ্লিকেশন সুরক্ষা প্রকল্পে ( ওডাব্লুএএসপি ) চিট শিটগুলিতে রেফার শিরোনামের গুরুত্ব সম্পর্কে উল্লেখ করা হয়েছে ।

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

উত্স উত্স চেক এখানে প্রস্তাবিত এই সুরক্ষিত তিনটি শিরোনামের উপর নির্ভর করে: উত্স, রেফারার এবং হোস্ট, এটি একেবারে নিজস্ব সিএসআরএফ প্রতিরক্ষা তৈরি করে।

আপনি এখানে নিষিদ্ধ শিরোনাম তালিকা উল্লেখ করতে পারেন । ব্যবহারকারীর এজেন্ট (যেমন: ব্রাউজার) এর ব্যবহারকারীদের নয় এই শিরোলেখগুলির সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।

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