Chrome-এর জন্য একটি নতুন ডিফল্ট রেফারার-নীতি - কঠোর-অরিজিন-when-cross-origin

মড নলপাস
Maud Nalpas

আমরা শুরু করার আগে:

  • আপনি যদি "সাইট" এবং "অরিজিন" এর মধ্যে পার্থক্য সম্পর্কে নিশ্চিত না হন তবে "একই-সাইট" এবং "একই-উৎপত্তি" বোঝার পরীক্ষা করুন।
  • Referer শিরোনামটিতে একটি R অনুপস্থিত, স্পেকটিতে একটি আসল ভুল বানানের কারণে। জাভাস্ক্রিপ্ট এবং DOM-এ Referrer-Policy হেডার এবং referrer সঠিকভাবে বানান করা হয়েছে।

সারাংশ

  • ব্রাউজারগুলি গোপনীয়তা-বর্ধিত ডিফল্ট রেফারার নীতিগুলির দিকে বিকশিত হচ্ছে, যখন একটি ওয়েবসাইটের কোনও নীতি সেট না থাকে তখন একটি ভাল ফলব্যাক প্রদান করতে৷
  • ক্রোম 85 সালে ডিফল্ট নীতি হিসাবে ধীরে ধীরে strict-origin-when-cross-origin সক্ষম করার পরিকল্পনা করেছে; এটি অন্য উৎস থেকে রেফারারের মানের উপর নির্ভর করে ব্যবহারের ক্ষেত্রে প্রভাব ফেলতে পারে।
  • এটি নতুন ডিফল্ট, তবে ওয়েবসাইটগুলি এখনও তাদের পছন্দের একটি নীতি বেছে নিতে পারে৷
  • Chrome-এ পরিবর্তনটি চেষ্টা করতে, chrome://flags/#reduced-referrer-granularity এ পতাকা সক্ষম করুন। কর্মের পরিবর্তন দেখতে আপনি এই ডেমোটিও দেখতে পারেন।
  • রেফারার নীতির বাইরে, রেফারারদের সাথে ব্রাউজারগুলি যেভাবে ডিল করে তা পরিবর্তিত হতে পারে—তাই এটিতে নজর রাখুন৷

কি পরিবর্তন হচ্ছে এবং কেন?

HTTP অনুরোধে ঐচ্ছিক Referer শিরোনাম অন্তর্ভুক্ত থাকতে পারে, যা উৎস বা ওয়েব পৃষ্ঠার URL নির্দেশ করে যেটি থেকে অনুরোধ করা হয়েছিল। Referer-Policy শিরোনাম Referer হেডারে এবং গন্তব্যের document.referrer এ নেভিগেশন এবং iframes-এর জন্য কী ডেটা উপলব্ধ করা হয়েছে তা নির্ধারণ করে।

আপনার সাইটের অনুরোধে Referer হেডারে ঠিক কী তথ্য পাঠানো হয়েছে তা আপনার সেট করা Referrer-Policy শিরোনাম দ্বারা নির্ধারিত হয়।

চিত্র: রেফারার পাঠানো হয়েছে       একটি অনুরোধ
রেফারার-নীতি এবং রেফারার।

যখন কোন নীতি সেট করা হয় না, ব্রাউজারের ডিফল্ট ব্যবহার করা হয়। ওয়েবসাইটগুলি প্রায়ই ব্রাউজারের ডিফল্টে পিছিয়ে যায়।

নেভিগেশন এবং আইফ্রেমের জন্য, Referer হেডারে উপস্থিত ডেটা document.referrer ব্যবহার করে JavaScript এর মাধ্যমেও অ্যাক্সেস করা যেতে পারে।

সম্প্রতি পর্যন্ত, no-referrer-when-downgrade ব্রাউজার জুড়ে একটি বিস্তৃত ডিফল্ট নীতি। কিন্তু এখন অনেক ব্রাউজার আরও গোপনীয়তা-বর্ধক ডিফল্টে চলে যাওয়ার কিছু পর্যায়ে রয়েছে।

ক্রোম 85 সংস্করণ থেকে শুরু করে no-referrer-when-downgrade থেকে strict-origin-when-cross-origin এ তার ডিফল্ট নীতি স্যুইচ করার পরিকল্পনা করছে।

এর মানে হল যে আপনার ওয়েবসাইটের জন্য কোনো নীতি সেট করা না থাকলে, Chrome ডিফল্টরূপে strict-origin-when-cross-origin ব্যবহার করবে। মনে রাখবেন যে আপনি এখনও আপনার পছন্দের একটি নীতি সেট করতে পারেন; এই পরিবর্তন শুধুমাত্র সেই ওয়েবসাইটগুলিতে প্রভাব ফেলবে যেগুলির কোনও নীতি সেট নেই৷

এই পরিবর্তন মানে কি?

strict-origin-when-cross-origin আরও গোপনীয়তা অফার করে। এই নীতির সাথে, ক্রস-অরিজিন অনুরোধের Referer হেডারে শুধুমাত্র মূলটি পাঠানো হয়।

এটি ব্যক্তিগত ডেটা ফাঁস প্রতিরোধ করে যা সম্পূর্ণ URL-এর অন্যান্য অংশ যেমন পাথ এবং ক্যোয়ারী স্ট্রিং থেকে অ্যাক্সেসযোগ্য হতে পারে।

চিত্র: রেফারার পাঠানো হয়েছে       নীতির উপর নির্ভর করে, ক্রস-অরিজিন অনুরোধের জন্য।
নীতির উপর নির্ভর করে একটি ক্রস-অরিজিন অনুরোধের জন্য রেফারার পাঠানো হয়েছে (এবং document.referrer)।

যেমন:

ক্রস-অরিজিন অনুরোধ, https://site-one.example/ stuff/detail?tag=red থেকে https://site-two.example/… এ পাঠানো হয়েছে:

  • no-referrer-when-downgrade সহ : রেফারার: ​​https://site-one.example/ stuff/detail?tag=red
  • সঙ্গে strict-origin-when-cross-origin : রেফারার: ​​https://site-one.example/।

কি একই থাকে?

  • no-referrer-when-downgrade মত, strict-origin-when-cross-origin সুরক্ষিত : যখন HTTPS অরিজিন (নিরাপদ) থেকে HTTP এক (অনিরাপদ) তে অনুরোধ করা হয় তখন কোন রেফারার ( Referer হেডার এবং document.referrer ) উপস্থিত থাকে না। এইভাবে, যদি আপনার ওয়েবসাইট HTTPS ব্যবহার করে ( যদি না হয় তবে এটিকে অগ্রাধিকার দিন ), আপনার ওয়েবসাইটের URL গুলি নন-HTTPS অনুরোধে ফাঁস হবে না—কারণ নেটওয়ার্কের যে কেউ এগুলি দেখতে পারে, তাই এটি আপনার ব্যবহারকারীদের মধ্যম-আক্রমণের জন্য উন্মুক্ত করবে৷
  • একই মূলের মধ্যে, 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 84-এ Chrome-এর নিজস্ব পরীক্ষা-নিরীক্ষা চালানো হয়, ব্যবহারকারী-দৃশ্যমান বিচ্ছেদ সীমিত হবে বলে আশা করা হচ্ছে

সার্ভার-সাইড লগিং বা বিশ্লেষণ যা সম্পূর্ণ রেফারার URL উপলব্ধের উপর নির্ভর করে সেই তথ্যের কণিকা হ্রাস দ্বারা প্রভাবিত হতে পারে।

আপনি কি করতে হবে?

Chrome 85-এ নতুন ডিফল্ট রেফারার নীতি চালু করার পরিকল্পনা করছে (বিটার জন্য জুলাই 2020, স্থিতিশীলতার জন্য আগস্ট 2020)। Chrome স্ট্যাটাস এন্ট্রিতে স্ট্যাটাস দেখুন।

পরিবর্তন বুঝতে এবং সনাক্ত

অনুশীলনে নতুন ডিফল্ট কী পরিবর্তন হয় তা বোঝার জন্য, আপনি এই ডেমোটি পরীক্ষা করে দেখতে পারেন।

আপনি যে ক্রোম ইন্সট্যান্স চালাচ্ছেন তাতে কোন নীতি প্রয়োগ করা হয়েছে তা শনাক্ত করতে আপনি এই ডেমো ব্যবহার করতে পারেন৷

পরিবর্তন পরীক্ষা করুন, এবং এটি আপনার সাইটে প্রভাবিত করবে কিনা তা নির্ধারণ করুন

আপনি ইতিমধ্যেই Chrome 81 থেকে শুরু করে পরিবর্তনটি চেষ্টা করে দেখতে পারেন: chrome://flags/#reduced-referrer-granularity এ যান এবং পতাকাটি সক্ষম করুন৷ যখন এই পতাকা সক্ষম করা হয়, তখন নীতি ছাড়াই সমস্ত ওয়েবসাইট নতুন strict-origin-when-cross-origin ডিফল্ট ব্যবহার করবে।

ক্রোম স্ক্রিনশট: কিভাবে       পতাকা chrome://flags/#reduced-referrer-granularity সক্ষম করতে।
পতাকা সক্রিয় করা হচ্ছে।

আপনি এখন আপনার ওয়েবসাইট এবং ব্যাকএন্ড আচরণ কিভাবে পরীক্ষা করতে পারেন.

প্রভাব শনাক্ত করার জন্য আরেকটি জিনিস হল আপনার ওয়েবসাইটের কোডবেস রেফারার ব্যবহার করে কিনা তা পরীক্ষা করা—হয় সার্ভারে ইনকামিং অনুরোধের Referer হেডারের মাধ্যমে, অথবা JavaScript-এর document.referrer থেকে।

আপনার সাইটের কিছু বৈশিষ্ট্য ভেঙ্গে যেতে পারে বা ভিন্নভাবে আচরণ করতে পারে যদি আপনি আপনার সাইটের অন্য উৎস থেকে অনুরোধের রেফারার ব্যবহার করেন (আরো বিশেষভাবে পাথ এবং/অথবা কোয়েরি স্ট্রিং) এবং এই উত্সটি ব্রাউজারের ডিফল্ট রেফারার নীতি ব্যবহার করে (অর্থাৎ এটির কোনো নীতি সেট নেই)।

যদি এটি আপনার সাইটকে প্রভাবিত করে তবে বিকল্পগুলি বিবেচনা করুন৷

আপনি যদি আপনার সাইটের অনুরোধের জন্য সম্পূর্ণ পথ বা ক্যোয়ারী স্ট্রিং অ্যাক্সেস করতে রেফারার ব্যবহার করেন, আপনার কাছে কয়েকটি বিকল্প রয়েছে:

  • আপনার CSRF সুরক্ষা, লগিং এবং অন্যান্য ব্যবহারের ক্ষেত্রে Origin এবং Sec-fetch-Site মতো বিকল্প কৌশল এবং শিরোনাম ব্যবহার করুন। রেফারার এবং রেফারার-নীতি দেখুন: সেরা অনুশীলনগুলি
  • আপনি একটি নির্দিষ্ট নীতিতে অংশীদারদের সাথে সারিবদ্ধ করতে পারেন যদি এটি আপনার ব্যবহারকারীদের কাছে প্রয়োজন এবং স্বচ্ছ হয়। অ্যাক্সেস কন্ট্রোল—যখন রেফারারকে ওয়েবসাইটগুলি দ্বারা তাদের সংস্থানগুলিকে অন্যান্য উত্সগুলিতে নির্দিষ্ট অ্যাক্সেস দেওয়ার জন্য ব্যবহার করা হয় — এমন একটি ক্ষেত্রে হতে পারে যদিও Chrome এর পরিবর্তনের সাথে, উত্সটি এখনও Referer হেডারে (এবং document.referrer ) ভাগ করা হবে৷

উল্লেখ্য যে রেফারারের ক্ষেত্রে বেশিরভাগ ব্রাউজার একই দিকে অগ্রসর হয় ( রেফারার এবং রেফারার-নীতিতে ব্রাউজার ডিফল্ট এবং তাদের বিবর্তন দেখুন: সর্বোত্তম অনুশীলন।

আপনার সাইট জুড়ে একটি স্পষ্ট, গোপনীয়তা-বর্ধক নীতি প্রয়োগ করুন

আপনার ওয়েবসাইট থেকে উদ্ভূত অনুরোধে কোন Referer পাঠানো উচিত, অর্থাৎ আপনার সাইটের জন্য কোন নীতি নির্ধারণ করা উচিত?

এমনকি Chrome-এর পরিবর্তনের কথা মাথায় রেখেও, এখনই strict-origin-when-cross-origin বা কঠোরতার মতো একটি স্পষ্ট, গোপনীয়তা-বর্ধক নীতি সেট করা একটি ভাল ধারণা।

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

রেফারার এবং রেফারার-নীতি পরীক্ষা করুন: একটি নীতি সেট করার বিশদ বিবরণের জন্য সর্বোত্তম অনুশীলন

Chrome এন্টারপ্রাইজ সম্পর্কে

Chrome এন্টারপ্রাইজ নীতি ForceLegacyDefaultReferrerPolicy IT অ্যাডমিনিস্ট্রেটরদের জন্য উপলব্ধ যারা এন্টারপ্রাইজ পরিবেশে no-referrer-when-downgrade পূর্ববর্তী ডিফল্ট রেফারার নীতি বাধ্য করতে চান৷ এটি এন্টারপ্রাইজগুলিকে তাদের অ্যাপ্লিকেশনগুলি পরীক্ষা এবং আপডেট করার জন্য অতিরিক্ত সময় দেয়।

এই নীতিটি Chrome 88 থেকে সরানো হবে।

প্রতিক্রিয়া পাঠান

আপনার কি শেয়ার করার জন্য প্রতিক্রিয়া বা রিপোর্ট করার কিছু আছে? শিপ করার জন্য Chrome এর অভিপ্রায় সম্পর্কে প্রতিক্রিয়া শেয়ার করুন বা @maudnals- এ আপনার প্রশ্ন টুইট করুন।

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

সম্পদ