HTTP ক্যাশে আপডেট করে নিরাপত্তা এবং গোপনীয়তা উন্নত করুন

ক্যাশে-কন্ট্রোল হেডার ভুলে যাওয়া বা অপব্যবহার করা আপনার ওয়েবসাইটের নিরাপত্তা এবং আপনার ব্যবহারকারীদের গোপনীয়তাকে নেতিবাচকভাবে প্রভাবিত করতে পারে।

আর্থার সোনজোগনি
Arthur Sonzogni

ডিফল্টরূপে, সংস্থানগুলিকে সর্বদা যে কোনও ধরণের ক্যাশে দ্বারা ক্যাশে করার অনুমতি দেওয়া হয়। Cache-Control হেডার ব্যবহার না করা বা অপব্যবহার না করা আপনার ওয়েবসাইটের নিরাপত্তা এবং আপনার ব্যবহারকারীদের গোপনীয়তাকে নেতিবাচকভাবে প্রভাবিত করতে পারে।

ব্যক্তিগতকৃত প্রতিক্রিয়াগুলির জন্য আপনি ব্যক্তিগত রাখতে চান, আমরা আপনাকে সুপারিশ করি:

  • রিসোর্স ক্যাশে করা থেকে মধ্যস্থতাকারীদের প্রতিরোধ করুন। Cache-Control: private
  • একটি উপযুক্ত সেকেন্ডারি ক্যাশে কী সেট করুন। যদি কুকির কারণে প্রতিক্রিয়া পরিবর্তিত হয়—যা ঘটতে পারে যখন কুকি শংসাপত্র সঞ্চয় করে—সেট Vary: Cookie

কেন এটি গুরুত্বপূর্ণ তা জানতে পড়ুন এবং আবিষ্কার করুন:

  1. নিরাপত্তা এবং গোপনীয়তার সমস্যা যা আপনি হয়তো জানেন না
  2. বিভিন্ন ধরনের HTTP ক্যাশে এবং সাধারণ ভুল ধারণা
  3. উচ্চ-মূল্যের ওয়েবসাইটগুলির জন্য প্রস্তাবিত পদক্ষেপ

Specter দুর্বলতা থেকে ফাঁস সম্পদ

স্পেকটার দুর্বলতা একটি পৃষ্ঠাকে একটি OS প্রক্রিয়ার মেমরি পড়ার অনুমতি দেয়। এর অর্থ হল একজন আক্রমণকারী ক্রস-অরিজিন ডেটাতে অননুমোদিত অ্যাক্সেস পেতে পারে। ফলস্বরূপ, আধুনিক ওয়েব ব্রাউজারগুলি তাদের কিছু বৈশিষ্ট্য- যেমন SharedArrayBuffer বা উচ্চ রেজোলিউশন টাইমার -এর ব্যবহার সীমাবদ্ধ করেছে ক্রস-অরিজিন আইসোলেশন সহ পৃষ্ঠাগুলিতে।

আধুনিক ওয়েব ব্রাউজারগুলি ক্রস-অরিজিন এমবেডার নীতি (COEP) প্রয়োগ করে৷ এটি ক্রস-অরিজিন সংস্থানগুলিকে নিশ্চিত করে:

  • পাবলিক সম্পদ, কুকি ছাড়া অনুরোধ
  • CORS বা CORP হেডারের মাধ্যমে সম্পদগুলিকে স্পষ্টভাবে ক্রস-অরিজিন ভাগ করার অনুমতি দেওয়া হয়েছে

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

কিভাবে HTTP ক্যাশিং স্পেকটার প্রভাবিত করে?

Cache-Control হেডার সঠিকভাবে সেট করা না থাকলে, একজন আক্রমণকারী একটি আক্রমণ চালাতে পারে। উদাহরণ স্বরূপ:

  1. শংসাপত্রযুক্ত সংস্থানটি ক্যাশে করা হয়েছে।
  2. আক্রমণকারী একটি ক্রস-অরিজিন বিচ্ছিন্ন পৃষ্ঠা লোড করে।
  3. আক্রমণকারী আবার সম্পদের জন্য অনুরোধ করে।
  4. COEP:credentialless ব্রাউজার দ্বারা সেট করা হয় , তাই সম্পদ কুকি ছাড়া আনা হয়. যাইহোক, একটি ক্যাশে পরিবর্তে শংসাপত্রযুক্ত প্রতিক্রিয়া ফেরত দিতে পারে।
  5. আক্রমণকারী তারপর একটি স্পেকটার আক্রমণ ব্যবহার করে ব্যক্তিগতকৃত সম্পদ পড়তে পারে।

যদিও একটি ওয়েব ব্রাউজারের HTTP ক্যাশে অনুশীলনে এই ধরনের আক্রমণের অনুমতি দেয় না, অতিরিক্ত ক্যাশে ব্রাউজারের তাৎক্ষণিক নিয়ন্ত্রণের বাইরে বিদ্যমান। এটি এই আক্রমণের সাফল্যের দিকে নিয়ে যেতে পারে।

HTTP ক্যাশে সম্পর্কে সাধারণ ভুল ধারণা

1. সম্পদ শুধুমাত্র ব্রাউজার দ্বারা ক্যাশে করা হয়

প্রায়ই ক্যাশে একাধিক স্তর আছে. কিছু ক্যাশে একক ব্যবহারকারীর জন্য উৎসর্গ করা হয়, কিছু একাধিক ব্যবহারকারীর জন্য। কিছু সার্ভার দ্বারা নিয়ন্ত্রিত হয়, কিছু ব্যবহারকারী দ্বারা, এবং কিছু মধ্যস্থতাকারীদের দ্বারা।

  • ব্রাউজার ক্যাশে . এই ক্যাশেগুলি তাদের ওয়েব ব্রাউজারে প্রয়োগ করা একক ব্যবহারকারীর মালিকানাধীন এবং নিবেদিত। তারা একই প্রতিক্রিয়া একাধিকবার আনা এড়িয়ে কর্মক্ষমতা উন্নত করে।
  • স্থানীয় প্রক্সি । এটি ব্যবহারকারী দ্বারা ইনস্টল করা থাকতে পারে, তবে মধ্যস্থতাকারীদের দ্বারাও পরিচালনা করা যেতে পারে: তাদের কোম্পানি, তাদের সংস্থা বা তাদের ইন্টারনেট প্রদানকারী৷ স্থানীয় প্রক্সিগুলি প্রায়শই একাধিক ব্যবহারকারীর জন্য একটি একক প্রতিক্রিয়া ক্যাশে করে, যা একটি "পাবলিক" ক্যাশে গঠন করে। স্থানীয় প্রক্সির একাধিক ভূমিকা আছে।
  • অরিজিন সার্ভার ক্যাশে / CDN । এটি সার্ভার দ্বারা নিয়ন্ত্রিত হয়। অরিজিন সার্ভার ক্যাশের লক্ষ্য হল একাধিক ব্যবহারকারীর জন্য একই প্রতিক্রিয়া ক্যাশে করে অরিজিন সার্ভারে লোড কমানো। একটি CDN-এর লক্ষ্যগুলি একই রকম, কিন্তু সারা বিশ্ব জুড়ে ছড়িয়ে রয়েছে এবং লেটেন্সি কমাতে ব্যবহারকারীদের নিকটতম সেটকে বরাদ্দ করা হয়েছে৷
ব্রাউজার এবং সার্ভারের মধ্যে প্রায়ই ক্যাশের একাধিক স্তর থাকে।
ব্রাউজার এবং সার্ভারের মধ্যে ক্যাশের বিভিন্ন স্তর থাকতে পারে। উদাহরণস্বরূপ, আপনি একটি সার্ভার ক্যাশের সম্মুখীন হতে পারেন, তারপরে একটি CDN এবং ব্রাউজার ক্যাশে৷ CDN এবং ব্রাউজার ক্যাশের মধ্যে একটি স্থানীয় প্রক্সি সেটআপও থাকতে পারে।

2. SSL মধ্যস্থতাকারীদেরকে HTTPS রিসোর্স ক্যাশে করা থেকে বাধা দেয়

অনেক ব্যবহারকারী নিয়মিতভাবে স্থানীয়ভাবে কনফিগার করা প্রক্সি ব্যবহার করেন, অ্যাক্সেসের উদ্দেশ্যে (যেমন একটি মিটারযুক্ত সংযোগ ভাগ করে নেওয়া), ভাইরাস পরিদর্শন বা ডেটা ক্ষতি প্রতিরোধ (DLP) উদ্দেশ্যে। মধ্যস্থতাকারী ক্যাশে TLS ইন্টারসেপশন সম্পাদন করছে।

একটি মধ্যস্থতাকারী ক্যাশে প্রায়ই কোম্পানির কর্মচারীর ওয়ার্কস্টেশনে ইনস্টল করা হয়। ওয়েব ব্রাউজারগুলি স্থানীয় প্রক্সির শংসাপত্রগুলিকে বিশ্বাস করার জন্য কনফিগার করা হয়েছে৷

শেষ পর্যন্ত, কিছু HTTPS সংস্থান এই স্থানীয় প্রক্সি দ্বারা ক্যাশ করা হতে পারে।

কিভাবে HTTP ক্যাশে কাজ করে

  • সম্পদগুলিকে ডিফল্টরূপে ক্যাশে করার অনুমতি দেওয়া হয়।
  • প্রাথমিক ক্যাশে কী ইউআরএল এবং পদ্ধতি নিয়ে গঠিত। (URL, পদ্ধতি)
  • সেকেন্ডারি ক্যাশে কী হল Vary হেডারে অন্তর্ভুক্ত হেডার। Vary: Cookie নির্দেশ করে প্রতিক্রিয়া Cookie উপর নির্ভর করে।
  • Cache-Control হেডার আরও সূক্ষ্ম দানাদার নিয়ন্ত্রণ দেয়।

উচ্চ-মূল্যের ওয়েবসাইটগুলির বিকাশকারী, যার মধ্যে উচ্চ ট্র্যাফিক সহ ওয়েবসাইট এবং ব্যক্তিগত সনাক্তকারী তথ্যের সাথে ইন্টারঅ্যাক্ট করে এমন ওয়েবসাইটগুলিকে অন্তর্ভুক্ত করে, নিরাপত্তা উন্নত করতে এখনই কাজ করা উচিত।

কুকির উপর নির্ভর করে সম্পদের অ্যাক্সেস পরিবর্তিত হলে সবচেয়ে বড় ঝুঁকি ঘটে। একটি মধ্যস্থতাকারী ক্যাশে এমন একটি প্রতিক্রিয়া ফিরিয়ে দিতে পারে যা একটি অনুরোধের জন্য কুকিজের সাথে অনুরোধ করা হয়েছিল যেটি যদি কোনো প্রতিরোধমূলক ব্যবস্থা নেওয়া না হয়।

আমরা আপনাকে নিম্নলিখিত পদক্ষেপগুলির মধ্যে একটি গ্রহণ করার পরামর্শ দিই:

  • রিসোর্স ক্যাশে করা থেকে মধ্যস্থতাকারীদের প্রতিরোধ করুন। Cache-Control: private
  • একটি উপযুক্ত সেকেন্ডারি ক্যাশে কী সেট করুন। যদি কুকির কারণে প্রতিক্রিয়া পরিবর্তিত হয়—যা ঘটতে পারে যখন কুকি শংসাপত্র সঞ্চয় করে—সেট Vary: Cookie

বিশেষ করে, ডিফল্ট আচরণ পরিবর্তন করুন: সর্বদা Cache-Control বা Vary সংজ্ঞায়িত করুন।

অতিরিক্ত বিবেচনা

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

এই আক্রমণগুলি কিছু ওয়েব ব্রাউজার দ্বারা প্রশমিত হয় যা তাদের HTTP ক্যাশে বিভক্ত করে তার উপর নির্ভর করে যে সংস্থান প্রতিক্রিয়া শংসাপত্রের সাথে অনুরোধ করা হয়েছিল কিনা। 2022 অনুযায়ী, ফায়ারফক্স ক্যাশে বিভক্ত করে, যখন ক্রোম এবং সাফারি করে না। Chrome ভবিষ্যতে ক্যাশে বিভক্ত করতে পারে । মনে রাখবেন যে এই আক্রমণগুলি আলাদা এবং এটিকে শীর্ষ-স্তরের উত্স অনুসারে বিভক্ত করার জন্য পরিপূরক৷

ওয়েব ব্রাউজারগুলির জন্য এই সমস্যাটি প্রশমিত করা গেলেও, সমস্যাটি স্থানীয় প্রক্সি ক্যাশে থেকে যাবে। অতএব, আমরা এখনও আপনাকে উপরের সুপারিশগুলি অনুসরণ করার পরামর্শ দিই।


আনস্প্ল্যাশে বেন প্যাটিনসনের হেডার ছবি।