সরঞ্জাম

Evercookie ট্র্যাকিং ডেমো

একাধিক ব্রাউজার স্টোরেজ মেকানিজম ব্যবহার করে কীভাবে "জম্বি কুকি" মুছে ফেলার চেষ্টা জুড়ে স্থায়ী হয় তা বুঝুন।

শুধুমাত্র শিক্ষামূলক প্রদর্শন

এই পৃষ্ঠাটি শিক্ষামূলক উদ্দেশ্যে evercookie ধারণা প্রদর্শন করে। আমরা আসলে আপনাকে ট্র্যাক করি না। ডেমো একটি র‍্যান্ডম ID সংরক্ষণ করে দেখায় কীভাবে স্থায়ীত্ব কাজ করে এবং আপনি যেকোনো সময় এটি সম্পূর্ণ মুছে ফেলতে পারেন।

Evercookie কী?

একটি evercookie ("জম্বি কুকি" বা "সুপারকুকি" নামেও পরিচিত) হলো একটি JavaScript API যা একই ট্র্যাকিং ID একাধিক ব্রাউজার স্টোরেজ মেকানিজমে একসাথে সংরক্ষণ করে অত্যন্ত স্থায়ী কুকি তৈরি করে।

যখন একজন ব্যবহারকারী তার কুকি মুছে দেয়, evercookie যেকোনো অবশিষ্ট স্টোরেজ অবস্থান থেকে নিজেকে পুনরায় তৈরি করে। সত্যিকারভাবে একটি evercookie সরাতে, আপনাকে একবারে সমস্ত স্টোরেজ মেকানিজম পরিষ্কার করতে হবে - যা বেশিরভাগ ব্যবহারকারী কীভাবে করতে হয় তা জানেন না।

মূল evercookie ২০১০ সালে Samy Kamkar, নিরাপত্তা গবেষক এবং evercookie স্রষ্টা দ্বারা তৈরি করা হয়েছিল অনলাইনে গোপনীয়তা বজায় রাখা কতটা কঠিন তা প্রদর্শন করতে।

ইন্টারেক্টিভ ডেমো

আপনার ডেমো ট্র্যাকিং ID

তৈরি হচ্ছে...

শুধু কুকি মুছে দেওয়ার চেষ্টা করুন, তারপর "সমস্ত স্টোরেজ পরীক্ষা করুন" ক্লিক করে দেখুন কীভাবে ID স্থায়ী থাকে

স্টোরেজ মেকানিজম

Evercookie ১৭+ বিভিন্ন স্টোরেজ মেকানিজম ব্যবহার করে। নীচে দেখানো হয়েছে আপনার ব্রাউজারে কোনগুলো উপলব্ধ এবং তাদের বর্তমান অবস্থা:

প্রতিটি মেকানিজম কীভাবে কাজ করে

স্ট্যান্ডার্ড HTTP কুকি সাধারণ

ঐতিহ্যবাহী পদ্ধতি - ব্রাউজার দ্বারা সংরক্ষিত ছোট টেক্সট ফাইল। ব্রাউজার সেটিংস থেকে সহজে পরিষ্কার করা যায়।

document.cookie = "tracking_id=abc123; expires=Fri, 31 Dec 9999 23:59:59 GMT";
HTML5 লোকাল স্টোরেজ সাধারণ

ডোমেইন প্রতি ৫-১০MB পর্যন্ত সংরক্ষণ করে। স্পষ্টভাবে পরিষ্কার না করা পর্যন্ত স্থায়ী থাকে। "কুকি" পরিষ্কার করার সময় প্রায়ই উপেক্ষিত হয়।

localStorage.setItem('tracking_id', 'abc123');
// Survives browser restart, never expires
HTML5 সেশন স্টোরেজ সাধারণ

localStorage-এর মতো কিন্তু ট্যাব বন্ধ হলে পরিষ্কার হয়ে যায়। একটি সেশনের সময় অন্য কুকি পুনরায় তৈরি করতে ডেটা পাস করতে ব্যবহার করা যেতে পারে।

sessionStorage.setItem('tracking_id', 'abc123');
IndexedDB সাধারণ

ব্রাউজারে একটি পূর্ণ NoSQL ডেটাবেস। প্রচুর পরিমাণ কাঠামোগত ডেটা সংরক্ষণ করতে পারে। ব্যবহারকারীদের দ্বারা খুব কমই পরিষ্কার করা হয়।

const request = indexedDB.open('evercookie_db', 1);
request.onsuccess = (e) => {
  const db = e.target.result;
  // Store tracking ID in database
};
Canvas ফিঙ্গারপ্রিন্ট PNG গোপনীয়

কুকির মান একটি PNG ছবিতে RGB পিক্সেল রঙ হিসেবে এনকোড করে, তারপর জোর করে ক্যাশে করে। ক্যাশে করা ছবিটি canvas-এ এঁকে এবং পিক্সেল মান পড়ে কুকি পুনরায় পড়া হয়।

// Encode "abc" as RGB: R=97, G=98, B=99
ctx.fillStyle = 'rgb(97, 98, 99)';
ctx.fillRect(0, 0, 1, 1);
// Later, read it back from cached image
HTTP ETag গোপনীয়

ETag ক্যাশে যাচাইকরণের জন্য তৈরি কিন্তু ট্র্যাকিং ID সংরক্ষণ করতে পারে। সার্ভার একটি অনন্য ETag পাঠায় এবং ব্রাউজার পরবর্তী অনুরোধে এটি ফেরত পাঠায়।

// Server response:
HTTP/1.1 200 OK
ETag: "tracking_id_abc123"

// Browser's next request:
If-None-Match: "tracking_id_abc123"
HSTS সুপারকুকি উন্নত

সাবডোমেইন HSTS নীতিতে বিট এনকোড করে HSTS (HTTP Strict Transport Security) ব্যবহার করে। প্রতিটি বিট একটি সাবডোমেইন যেখানে HSTS সেট করা আছে বা নেই।

// Encoding "5" (binary: 101) across subdomains:
// bit0.tracker.com → HSTS ON  (1)
// bit1.tracker.com → HSTS OFF (0)
// bit2.tracker.com → HSTS ON  (1)
// Reading: check if browser upgrades each subdomain to HTTPS
ওয়েব ক্যাশে গোপনীয়

একটি ক্যাশে করা JavaScript বা HTML ফাইলের মধ্যে ট্র্যাকিং ID সংরক্ষণ করে। ব্রাউজার ক্যাশে সংস্করণ লোড করলে, এতে ID থাকে।

// Server sends with far-future cache headers:
Cache-Control: max-age=31536000
// File contents:
var cached_tracking_id = "abc123";
window.name গোপনীয়

window.name প্রপার্টি একই ট্যাবের মধ্যে পেজ নেভিগেশন জুড়ে স্থায়ী থাকে, এমনকি ভিন্ন ডোমেইনেও। এটি ২MB পর্যন্ত সংরক্ষণ করতে পারে।

window.name = "tracking_id=abc123";
// Survives navigation to other sites in same tab!
Flash কুকি (LSO) অবসরপ্রাপ্ত

Flash Local Shared Objects ব্রাউজারের নিয়ন্ত্রণের বাইরে ডেটা সংরক্ষণ করত। পরিষ্কার করতে Adobe-এর ওয়েবসাইট পরিদর্শন করতে হতো। Flash এখন মৃত, কিন্তু খুব কার্যকর ছিল।

// ActionScript:
var so:SharedObject = SharedObject.getLocal("evercookie");
so.data.tracking_id = "abc123";
so.flush();
Silverlight বিচ্ছিন্ন স্টোরেজ অবসরপ্রাপ্ত

Microsoft-এর Silverlight প্লাগইনের নিজস্ব স্টোরেজ মেকানিজম ছিল, ব্রাউজার স্টোরেজ থেকে পৃথক। Silverlight এখন বন্ধ।

ইতিহাস চুরি প্যাচ করা

ID সহ URL পরিদর্শন করে ব্রাউজার ইতিহাসে ডেটা এনকোড করত। লিঙ্ক :visited স্টাইল পরীক্ষা করে পুনরায় পড়া যেত। ব্রাউজারগুলো এটি প্যাচ করেছে।

// Create history entries:
location = "http://tracker.com/id/a";
location = "http://tracker.com/id/b";
// Read via CSS :visited (now blocked)

Brave কীভাবে Evercookie থেকে সুরক্ষা দেয়

  • স্টোরেজ পার্টিশনিং: প্রতি-সাইট স্টোরেজ বিচ্ছিন্ন করে, ক্রস-সাইট ট্র্যাকিং প্রতিরোধ করে
  • Ephemeral Storage: Third-party storage is cleared when you close the site
  • Canvas Fingerprint Randomization: Defeats PNG-based cookie storage
  • Blocked HSTS Supercookies: Clears HSTS state for tracking domains
  • ETag Stripping: Removes tracking ETags from known trackers
  • কোনো Flash/Silverlight নেই: লিগ্যাসি প্লাগইন সম্পূর্ণ ব্লক

গোপনীয়তা প্রভাব

Evercookie ওয়েব গোপনীয়তার একটি মৌলিক সমস্যা প্রদর্শন করে: ব্রাউজারে ডেটা সংরক্ষণের জায়গা অনেক বেশি। প্রতিটি নতুন API (IndexedDB, Service Workers, Cache API) ট্র্যাকারদের জন্য আরেকটি সম্ভাব্য আড়ালের জায়গা তৈরি করে।

যদিও evercookie মূলত একটি ধারণার প্রমাণ ছিল, বিভিন্ন রূপ বাস্তবে ব্যবহৃত হয়:

  • ক্রস-সাইট ট্র্যাকিংয়ের জন্য বিজ্ঞাপন নেটওয়ার্ক
  • জালিয়াতি শনাক্তকরণ সিস্টেম
  • পেওয়াল প্রয়োগ
  • সরকারি নজরদারি সরঞ্জাম

সেরা প্রতিরক্ষা হলো Brave-এর মতো একটি গোপনীয়তা-কেন্দ্রিক ব্রাউজার ব্যবহার করা যা স্টোরেজ পার্টিশনিং বাস্তবায়ন করে এবং সক্রিয়ভাবে পরিচিত ট্র্যাকিং কৌশল ব্লক করে।

সম্পর্কিত ব্রাউজার গোপনীয়তা সরঞ্জাম