শুরু করার আগে:
- 'সাইট' এবং 'অরিজিন'-এর মধ্যে পার্থক্য সম্পর্কে আপনি যদি অনিশ্চিত থাকেন, তাহলে 'সেম-সাইট' এবং 'সেম-অরিজিন' বোঝা দেখুন।
- স্পেসিফিকেশনে মূল বানান ভুলের কারণে
Refererহেডারে একটি R অক্ষর নেই। জাভাস্ক্রিপ্ট এবং DOM-এরReferrer-Policyহেডার ওreferrerবানান সঠিকভাবে লেখা আছে।
সারসংক্ষেপ
- ব্রাউজারগুলো গোপনীয়তা-বর্ধক ডিফল্ট রেফারার পলিসির দিকে বিকশিত হচ্ছে, যাতে কোনো ওয়েবসাইটে কোনো পলিসি সেট করা না থাকলে এটি একটি ভালো বিকল্প ব্যবস্থা হিসেবে কাজ করে।
- ক্রোম তার ৮৫ সংস্করণে পর্যায়ক্রমে
strict-origin-when-cross-originপলিসিটিকে ডিফল্ট হিসেবে চালু করার পরিকল্পনা করছে; এটি এমন সব ব্যবহারের ক্ষেত্রে প্রভাব ফেলতে পারে যা অন্য কোনো অরিজিন থেকে আসা রেফারার ভ্যালুর উপর নির্ভর করে। - এটিই নতুন ডিফল্ট, তবে ওয়েবসাইটগুলো এখনও তাদের পছন্দমতো নীতি বেছে নিতে পারে।
- ক্রোমে পরিবর্তনটি পরখ করে দেখতে,
chrome://flags/#reduced-referrer-granularityলিঙ্কে থাকা ফ্ল্যাগটি সক্রিয় করুন। পরিবর্তনটি বাস্তবে কেমন কাজ করছে তা দেখতে আপনি এই ডেমোটিও দেখতে পারেন। - রেফারার পলিসি ছাড়াও, ব্রাউজারগুলো যেভাবে রেফারার পরিচালনা করে তা পরিবর্তিত হতে পারে—তাই এ বিষয়ে নজর রাখুন।
কী পরিবর্তন হচ্ছে এবং কেন?
HTTP অনুরোধগুলিতে ঐচ্ছিক Referer হেডার অন্তর্ভুক্ত থাকতে পারে, যা নির্দেশ করে যে অনুরোধটি কোন উৎস বা ওয়েব পেজের URL থেকে করা হয়েছে। Referer-Policy হেডারটি নির্ধারণ করে যে Referer হেডারে এবং গন্তব্যের document.referrer এ নেভিগেশন ও iframe-এর জন্য কোন ডেটা উপলব্ধ করা হবে।
আপনার সাইট থেকে করা কোনো অনুরোধে Referer হেডারে ঠিক কী তথ্য পাঠানো হবে, তা আপনার সেট করা Referrer-Policy হেডার দ্বারা নির্ধারিত হয়।

যখন কোনো নীতি নির্ধারণ করা থাকে না, তখন ব্রাউজারের ডিফল্টটি ব্যবহৃত হয়। ওয়েবসাইটগুলো প্রায়শই ব্রাউজারের ডিফল্টকেই প্রাধান্য দেয়।
ন্যাভিগেশন এবং আইফ্রেমের ক্ষেত্রে, Referer হেডারে থাকা ডেটা JavaScript-এর মাধ্যমে document.referrer ব্যবহার করেও অ্যাক্সেস করা যায়।
সাম্প্রতিককাল পর্যন্ত, no-referrer-when-downgrade ব্রাউজারগুলোতে একটি বহুল প্রচলিত ডিফল্ট নীতি ছিল। কিন্তু এখন অনেক ব্রাউজারই আরও বেশি গোপনীয়তা-বর্ধক ডিফল্ট নীতি গ্রহণের কোনো না কোনো পর্যায়ে রয়েছে।
ক্রোম সংস্করণ ৮৫ থেকে তার ডিফল্ট নীতি no-referrer-when-downgrade থেকে strict-origin-when-cross-origin এ পরিবর্তন করার পরিকল্পনা করছে।
এর মানে হলো, আপনার ওয়েবসাইটের জন্য কোনো পলিসি সেট করা না থাকলে, Chrome ডিফল্টরূপে strict-origin-when-cross-origin ব্যবহার করবে। মনে রাখবেন, আপনি এখনও আপনার পছন্দের পলিসি সেট করতে পারেন; এই পরিবর্তনটি শুধুমাত্র সেইসব ওয়েবসাইটের ক্ষেত্রেই কার্যকর হবে যেগুলোতে কোনো পলিসি সেট করা নেই।
এই পরিবর্তনের অর্থ কী?
strict-origin-when-cross-origin আরও বেশি গোপনীয়তা প্রদান করে। এই নীতির ফলে, ক্রস-অরিজিন অনুরোধের Referer হেডারে শুধুমাত্র অরিজিন পাঠানো হয়।
এর ফলে ব্যক্তিগত তথ্য ফাঁস হওয়া প্রতিরোধ করা যায়, যা সম্পূর্ণ URL-এর অন্যান্য অংশ, যেমন পাথ এবং কোয়েরি স্ট্রিং থেকে অ্যাক্সেসযোগ্য হতে পারে।

উদাহরণস্বরূপ:
ক্রস-অরিজিন অনুরোধ, যা https://site-one.example/ stuff/detail?tag=red থেকে https://site-two.example/…-এ পাঠানো হয়েছে:
- With
no-referrer-when-downgrade: Referer: https://site-one.example/ stuff/detail?tag=red . -
strict-origin-when-cross-originএর ক্ষেত্রে: Referer: https://site-one.example/।
কী অপরিবর্তিত থাকে?
-
no-referrer-when-downgradeমতোই,strict-origin-when-cross-originপদ্ধতিটিও নিরাপদ : যখন একটি HTTPS অরিজিন (নিরাপদ) থেকে একটি HTTP অরিজিনে (অনিরাপদ) অনুরোধ করা হয়, তখন কোনো রেফারার (Refererহেডার এবংdocument.referrer) উপস্থিত থাকে না। এইভাবে, যদি আপনার ওয়েবসাইট HTTPS ব্যবহার করে ( যদি না করে, তবে এটিকে অগ্রাধিকার দিন ), তাহলে নন-HTTPS অনুরোধের ক্ষেত্রে আপনার ওয়েবসাইটের URL-গুলো ফাঁস হবে না—কারণ নেটওয়ার্কের যে কেউ এগুলো দেখতে পারে, ফলে এটি আপনার ব্যবহারকারীদের ম্যান-ইন-দ্য-মিডল-অ্যাটাকের ঝুঁকিতে ফেলবে। - একই অরিজিনের মধ্যে,
Refererহেডারের মান হলো সম্পূর্ণ URL।
উদাহরণস্বরূপ: একই-অরিজিন অনুরোধ, যা https://site-one.example/ stuff/detail?tag=red থেকে https://site-one.example/…-এ পাঠানো হয়েছে:
-
strict-origin-when-cross-originএর সাথে : রেফারার: https://site-one.example/ stuff/detail?tag=red
এর প্রভাব কী?
অন্যান্য ব্রাউজারগুলোর সাথে আলোচনা এবং ক্রোম ৮৪-এ চালানো নিজস্ব পরীক্ষা-নিরীক্ষার ভিত্তিতে, ব্যবহারকারীর কাছে দৃশ্যমান সমস্যা সীমিত থাকবে বলে আশা করা হচ্ছে ।
সার্ভার-সাইড লগিং বা অ্যানালিটিক্স, যা সম্পূর্ণ রেফারার ইউআরএল উপলব্ধ থাকার উপর নির্ভর করে, সেই তথ্যের সূক্ষ্মতা কমে গেলে প্রভাবিত হওয়ার সম্ভাবনা রয়েছে।
তোমাকে কী করতে হবে?
ক্রোম ৮৫ সংস্করণে (বিটা সংস্করণের জন্য জুলাই ২০২০, স্টেবল সংস্করণের জন্য আগস্ট ২০২০) নতুন ডিফল্ট রেফারার পলিসি চালু করার পরিকল্পনা করছে। ক্রোম স্ট্যাটাস এন্ট্রিতে এর অবস্থা দেখুন।
পরিবর্তনটি বুঝুন এবং শনাক্ত করুন
নতুন ডিফল্টটি বাস্তবে কী পরিবর্তন আনে তা বুঝতে, আপনি এই ডেমোটি দেখতে পারেন।
আপনি যে ক্রোম ইনস্ট্যান্সটি চালাচ্ছেন, তাতে কোন পলিসি প্রয়োগ করা হয়েছে তা শনাক্ত করতেও এই ডেমোটি ব্যবহার করতে পারেন।
পরিবর্তনটি পরীক্ষা করুন এবং এটি আপনার সাইটকে প্রভাবিত করবে কিনা তা খুঁজে বের করুন।
আপনি ক্রোম ৮১ থেকে এই পরিবর্তনটি ইতিমধ্যেই পরীক্ষা করে দেখতে পারেন: ক্রোমে chrome://flags/#reduced-referrer-granularity এ যান এবং ফ্ল্যাগটি সক্রিয় করুন। এই ফ্ল্যাগটি সক্রিয় করা হলে, পলিসিবিহীন সমস্ত ওয়েবসাইট নতুন strict-origin-when-cross-origin ডিফল্টটি ব্যবহার করবে।

এখন আপনি আপনার ওয়েবসাইট ও ব্যাকএন্ডের আচরণ যাচাই করে দেখতে পারেন।
প্রভাব শনাক্ত করার জন্য আরেকটি করণীয় কাজ হলো, আপনার ওয়েবসাইটের কোডবেসে রেফারার ব্যবহৃত হচ্ছে কিনা তা পরীক্ষা করা—হয় সার্ভারে আসা রিকোয়েস্টের Referer হেডারের মাধ্যমে, অথবা জাভাস্ক্রিপ্টের document.referrer ব্যবহার করে।
আপনার সাইটের কিছু নির্দিষ্ট ফিচার কাজ করা বন্ধ করে দিতে পারে বা ভিন্নভাবে আচরণ করতে পারে, যদি আপনি অন্য কোনো অরিজিন থেকে আপনার সাইটে আসা রিকোয়েস্টের রেফারার (বিশেষত পাথ এবং/অথবা কোয়েরি স্ট্রিং) ব্যবহার করেন এবং সেই অরিজিনটি ব্রাউজারের ডিফল্ট রেফারার পলিসি ব্যবহার করে (অর্থাৎ, এতে কোনো পলিসি সেট করা নেই)।
যদি এটি আপনার সাইটকে প্রভাবিত করে, তবে বিকল্প বিবেচনা করুন।
আপনার সাইটে আসা অনুরোধগুলোর সম্পূর্ণ পাথ বা কোয়েরি স্ট্রিং অ্যাক্সেস করার জন্য যদি আপনি রেফারার ব্যবহার করেন, তাহলে আপনার কাছে কয়েকটি বিকল্প রয়েছে:
- আপনার CSRF সুরক্ষা, লগিং এবং অন্যান্য ব্যবহারের জন্য
OriginএবংSec-fetch-Siteএর মতো বিকল্প কৌশল ও হেডার ব্যবহার করুন। Referer এবং Referrer-Policy: সেরা অনুশীলনগুলো দেখুন। - প্রয়োজন হলে এবং আপনার ব্যবহারকারীদের কাছে স্বচ্ছ থাকলে, আপনি অংশীদারদের সাথে একটি নির্দিষ্ট নীতির বিষয়ে একমত হতে পারেন। অ্যাক্সেস কন্ট্রোল—যখন ওয়েবসাইটগুলো অন্য অরিজিনকে তাদের রিসোর্সে নির্দিষ্ট অ্যাক্সেস দেওয়ার জন্য রেফারার ব্যবহার করে—এরকম একটি ক্ষেত্র হতে পারে, যদিও ক্রোমের পরিবর্তনের পরেও
Refererহেডারে (এবংdocument.referrerএ) অরিজিনটি শেয়ার করা থাকবে।
উল্লেখ্য যে, রেফারারের ক্ষেত্রে বেশিরভাগ ব্রাউজারই একই দিকে এগোচ্ছে (ব্রাউজারের ডিফল্ট এবং Referer ও Referrer-Policy: সেরা অনুশীলন অংশে সেগুলোর বিবর্তন দেখুন)।
আপনার সাইট জুড়ে একটি সুস্পষ্ট, গোপনীয়তা-বর্ধক নীতি প্রয়োগ করুন।
আপনার ওয়েবসাইট থেকে পাঠানো অনুরোধগুলোর ক্ষেত্রে কোন Referer পাঠানো উচিত, অর্থাৎ আপনার সাইটের জন্য কী নীতি নির্ধারণ করা উচিত?
ক্রোমের পরিবর্তন মাথায় রেখেও, এখনই strict-origin-when-cross-origin মতো বা তার চেয়েও কঠোর একটি সুস্পষ্ট ও গোপনীয়তা-বর্ধক পলিসি সেট করা ভালো।
এটি আপনার ব্যবহারকারীদের সুরক্ষিত রাখে এবং বিভিন্ন ব্রাউজারে আপনার ওয়েবসাইটকে আরও অনুমানযোগ্যভাবে কাজ করতে সাহায্য করে। সর্বোপরি, এটি আপনাকে নিয়ন্ত্রণ দেয় — আপনার সাইটকে ব্রাউজারের ডিফল্ট সেটিংসের উপর নির্ভরশীল না করে।
পলিসি নির্ধারণের বিস্তারিত তথ্যের জন্য রেফারার এবং রেফারার-পলিসি: সেরা অনুশীলনসমূহ দেখুন।
ক্রোম এন্টারপ্রাইজ সম্পর্কে
Chrome এন্টারপ্রাইজ পলিসি ForceLegacyDefaultReferrerPolicy সেইসব আইটি প্রশাসকদের জন্য উপলব্ধ, যারা এন্টারপ্রাইজ পরিবেশে no-referrer-when-downgrade প্রয়োগ করতে চান। এটি প্রতিষ্ঠানগুলোকে তাদের অ্যাপ্লিকেশন পরীক্ষা ও আপডেট করার জন্য অতিরিক্ত সময় দেয়।
এই নীতিটি ক্রোম ৮৮ থেকে তুলে দেওয়া হবে।
মতামত পাঠান
আপনার কি জানানোর মতো কোনো মতামত বা অভিযোগ আছে? Chrome-এর প্রকাশের অভিপ্রায় সম্পর্কে মতামত জানান, অথবা আপনার প্রশ্নগুলো @maudnals- এ টুইট করুন।
সকল পর্যালোচকদের - বিশেষ করে কৌস্তুভ গোবিন্দ, ডেভিড ভ্যান ক্লিভ, মাইক ওয়েস্ট, স্যাম ডাটন, রোয়ান মেরেউড, জ্যাক এবং কেসি বাস্কসকে তাদের অবদান ও মতামতের জন্য অসংখ্য ধন্যবাদ।