Chrome 135 থেকে, আপনি নতুন sandbox
মান ব্যবহার করতে পারেন: allow-same-site-none-cookies
। যখন এই নীতি নির্দিষ্ট করা থাকে এবং তৃতীয় পক্ষের কুকিজ উপলব্ধ না থাকে, তখন ব্রাউজারটি শুধুমাত্র প্রথম পক্ষের স্যান্ডবক্স করা আইফ্রেম থেকে আসা HTTP অনুরোধগুলিতে SameSite=None
কুকি পাঠাবে না।
একটি স্যান্ডবক্সড আইফ্রেম কি?
স্যান্ডবক্সযুক্ত আইফ্রেমগুলি বিশেষ সীমাবদ্ধতা সহ আইফ্রেম। তাদের একটি null
, অস্বচ্ছ উৎপত্তি হিসেবে ধরা হয়। ডিফল্টরূপে, সম্ভাব্য ক্ষতিকারক বৈশিষ্ট্য যেমন স্ক্রিপ্ট, ফর্ম, এবং পপআপগুলি স্যান্ডবক্সড আইফ্রেমের মধ্যে উপলব্ধ নয়৷
স্যান্ডবক্সযুক্ত আইফ্রেমের কোন বৈশিষ্ট্যগুলি উপলব্ধ থাকা উচিত তা নির্দিষ্ট করতে sandbox
অ্যাট্রিবিউট ব্যবহার করুন৷ যেমন:
<iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>
স্যান্ডবক্সিং সর্বদা একটি ভাল ধারণা, কারণ এটি আপনাকে সম্ভাব্য শোষণের সুযোগ সীমিত করার সাথে সাথে সফলভাবে এমবেড করা সামগ্রীর জন্য প্রয়োজনীয় অনুমতিগুলি নির্বাচন করতে দেয়।
কেন আমরা এই নতুন নীতি প্রয়োজন?
allow-same-site-none-cookies
প্রবর্তনের আগে, আপনি একটি স্যান্ডবক্সড আইফ্রেমের মধ্যে দুটি কুকি পরিস্থিতি কনফিগার করতে পারেন:
-
sandbox
অ্যাট্রিবিউটেallow-same-origin
টোকেন ব্যতীত, স্যান্ডবক্সযুক্ত পৃষ্ঠা ক্রস-সাইট থেকে সমস্ত অনুরোধ করে, আইফ্রেমের উত্সnull
হিসাবে ক্রমিক করা হয়। এই ক্ষেত্রে,SameSite=None
এর সাথে শুধুমাত্র কুকিজ অনুরোধে অন্তর্ভুক্ত করা হবে না। -
sandbox
অ্যাট্রিবিউটেallow-same-origin
টোকেন সহ, অনুরোধগুলিকে আইফ্রেমের আসল উত্স থেকে উদ্ভূত হিসাবে বিবেচনা করা হয়, যে কোনওSameSite
মান সহ কুকি পাঠানোর অনুমতি দেয়।
থার্ড-পার্টি কুকিজ অবরুদ্ধ থাকলে, একটি স্যান্ডবক্সড আইফ্রেমে allow-same-origin
নেই এমন কোনো কুকি পাঠাতে অক্ষম যদি না আপনি allow-same-site-none-cookies
সক্ষম না করেন।
allow-same-origin
সহ একটি আইফ্রেম এখনও একই-সাইটের অনুরোধগুলিতে কুকি অন্তর্ভুক্ত করতে সক্ষম হবে, এমনকি তৃতীয়-পক্ষের কুকিজ ব্লক করা হলেও। যাইহোক, সমগ্র মূলের কুকি জার সম্ভাব্য দূষিত ওয়েব কার্যকলাপের সংস্পর্শে আসবে।
allow-same-site-none-cookies
দিয়ে, একটি আইফ্রেম HTTP অনুরোধে SameSite=None
কুকি পাঠাতে পারে না, যখন সম্ভাব্য সংবেদনশীল SameSite=Strict
এবং SameSite=Lax
কুকিজ অন্তর্ভুক্ত করা হবে না।
ব্যবহারিক উদাহরণ
একটি সাইট বিবেচনা করুন, practice-coding.example
, যা ব্যবহারকারীদের কাস্টম কোডিং প্রকল্পগুলি তৈরি এবং চালাতে এবং অন্যান্য ব্যবহারকারীদের কোড এম্বেড করতে দেয়৷ পরিষেবাটি ব্যবহার করার জন্য, ব্যবহারকারীদের অবশ্যই সাইন ইন করতে হবে, যার ফলে একটি SameSite=Strict
সেশন কুকি সেট করা হবে।
অন্য ব্যবহারকারী একটি প্রকল্প তৈরি করে, practice-coding.example/cookie-theft
, যা অন্য ব্যবহারকারীরা অজান্তেই তাদের প্রকল্পগুলিতে একটি iframe হিসাবে এম্বেড করতে পারে৷ যদি SameSite=Strict
এবং SameSite=Lax
কুকিগুলি practice-coding.example/cookie-theft
iframe-এর সংস্পর্শে আসে, তাহলে ক্ষতিকারক ব্যবহারকারী অন্য ব্যবহারকারীর সেশন কুকিগুলি চুরি করতে পারে।
এই পরিস্থিতিতে, সাইটের মালিক সম্ভাব্য সংবেদনশীল কুকিগুলিতে অ্যাক্সেস সীমাবদ্ধ করতে চাইতে পারেন। যাইহোক, তারা এখনও স্যান্ডবক্সড আইফ্রেমের মধ্যে SameSite=None
কুকিজকে অনুমতি দিতে চাইতে পারে। উদাহরণস্বরূপ, practice-coding.example/coding-interview
স্যান্ডবক্সযুক্ত iframe প্রার্থীদের তাদের কোড পুনরায় দেখার অনুমতি দেওয়ার জন্য SameSite=None
কুকির প্রয়োজন হতে পারে। allow-same-site-none-cookies
প্রয়োজনীয় SameSite=None
কুকিজকে বেছে নেওয়ার অনুমতি দেওয়ার সময় সম্পূর্ণ কুকি জারকে প্রকাশ করতে বাধা দেয়।
প্রথম পক্ষের স্যান্ডবক্সযুক্ত ফ্রেমের মধ্যে আমি কীভাবে শুধুমাত্র SameSite=None
অনুমতি দেব?
SameSite=None
কুকিজ সক্রিয় করতে, iframe ট্যাগে allow-same-site-none-cookies
টোকেন নির্দিষ্ট করুন। যেমন:
<iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>
আপনি একটি Content-Security-Policy
HTTP শিরোনাম সহ একটি allow-same-site-none-cookies
নীতি সেট করতে পারেন:
Content-Security-Policy: sandbox allow-same-site-none-cookies;
আমাদের ডেমো দিয়ে এটি নিজে চেষ্টা করুন।
জড়িত এবং মতামত শেয়ার করুন
প্রতিক্রিয়া শেয়ার করতে বা সমস্যা রিপোর্ট করতে একটি সমস্যা ফাইল করুন, বা GitHub-এ আলোচনায় যোগ দিন।