প্রতিক্রিয়া চাই: ব্যক্তিগত নেটওয়ার্কের জন্য CORS (RFC1918)

ওয়েবে ক্লায়েন্টের অভ্যন্তরীণ নেটওয়ার্কে ডিভাইস এবং সার্ভারের অনিচ্ছাকৃত এক্সপোজারের সাথে যুক্ত ঝুঁকিগুলি প্রশমিত করুন।

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

এই পরিবর্তনটি কীভাবে ওয়েব ইকোসিস্টেমের উপর প্রভাব ফেলে তা বোঝার জন্য, Chrome টিম বিকাশকারীদের কাছ থেকে প্রতিক্রিয়া খুঁজছে যারা ব্যক্তিগত নেটওয়ার্কগুলির জন্য সার্ভার তৈরি করে৷

স্থিতাবস্থার সাথে ভুল কি?

অনেক ওয়েব সার্ভার একটি প্রাইভেট নেটওয়ার্কের মধ্যে চলে—ওয়্যারলেস রাউটার, প্রিন্টার, ইন্ট্রানেট ওয়েবসাইট, এন্টারপ্রাইজ পরিষেবা এবং ইন্টারনেট অফ থিংস (IoT) ডিভাইসগুলি তাদেরই অংশ। তারা জনসাধারণের কাছে উন্মুক্ত পরিবেশের চেয়ে নিরাপদ পরিবেশে বলে মনে হতে পারে তবে এই সার্ভারগুলিকে প্রক্সি হিসাবে একটি ওয়েব পৃষ্ঠা ব্যবহার করে আক্রমণকারীরা অপব্যবহার করতে পারে৷ উদাহরণস্বরূপ, দূষিত ওয়েবসাইটগুলি এমন একটি URL এম্বেড করতে পারে যা শিকারের দ্বারা (একটি জাভাস্ক্রিপ্ট-সক্ষম ব্রাউজারে) দেখা হলে, শিকারের হোম ব্রডব্যান্ড রাউটারে DNS সার্ভার সেটিংস পরিবর্তন করার চেষ্টা করে৷ এই ধরনের আক্রমণকে " ড্রাইভ-বাই ফার্মিং " বলা হয় এবং এটি 2014 সালে হয়েছিল । 300,000 এরও বেশি দুর্বল ওয়্যারলেস রাউটারগুলি তাদের DNS সেটিংস পরিবর্তন করে এবং আক্রমণকারীদের ব্যবহারকারীদের ক্ষতিকারক সার্ভারে পুনঃনির্দেশিত করার অনুমতি দিয়ে শোষণ করা হয়েছিল।

CORS-RFC1918

অনুরূপ আক্রমণের হুমকি কমাতে, ওয়েব সম্প্রদায় নিয়ে আসছে CORS-RFC1918RFC1918- এ সংজ্ঞায়িত ব্যক্তিগত নেটওয়ার্কগুলির জন্য বিশেষায়িত ক্রস অরিজিন রিসোর্স শেয়ারিং (CORS)

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

CORS-RFC1918- এর মাধ্যমে ব্রাউজারটি ডিফল্টরূপে ব্যক্তিগত নেটওয়ার্কে লোড করা সংস্থানগুলিকে ব্লক করবে যা CORS ব্যবহার করে এবং HTTPS ব্যবহার করে সার্ভার দ্বারা স্পষ্টভাবে অনুমোদিত। সেই সংস্থানগুলিতে অনুরোধ করা ওয়েবসাইটকে CORS শিরোনাম পাঠাতে হবে এবং সার্ভারকে স্পষ্টভাবে বলতে হবে যে এটি সংশ্লিষ্ট CORS শিরোনামগুলির সাথে প্রতিক্রিয়া জানিয়ে ক্রস-অরিজিন অনুরোধ গ্রহণ করে। (সঠিক CORS শিরোনামগুলি এখনও বিকাশাধীন।)

এই ধরনের ডিভাইস বা সার্ভারের বিকাশকারীদের দুটি জিনিস করার জন্য অনুরোধ করা হবে:

  • নিশ্চিত করুন যে ওয়েবসাইটটি একটি প্রাইভেট নেটওয়ার্কে অনুরোধ করছে সেটি HTTPS-এর মাধ্যমে পরিবেশিত হয়েছে।
  • CORS-RFC1918 এর জন্য সার্ভার সমর্থন সেট আপ করুন এবং প্রত্যাশিত HTTP শিরোনামগুলির সাথে প্রতিক্রিয়া জানান৷

কি ধরনের অনুরোধ প্রভাবিত হয়?

প্রভাবিত অনুরোধ অন্তর্ভুক্ত:

  • পাবলিক নেটওয়ার্ক থেকে একটি প্রাইভেট নেটওয়ার্কে অনুরোধ
  • একটি প্রাইভেট নেটওয়ার্ক থেকে স্থানীয় নেটওয়ার্কে অনুরোধ
  • পাবলিক নেটওয়ার্ক থেকে স্থানীয় নেটওয়ার্কে অনুরোধ

একটি প্রাইভেট নেটওয়ার্ক একটি গন্তব্য যা IPv4-তে RFC1918- এর ধারা 3-এ সংজ্ঞায়িত ব্যক্তিগত ঠিকানার স্থানের সমাধান করে, একটি IPv4-ম্যাপ করা IPv6 ঠিকানা যেখানে ম্যাপ করা IPv4 ঠিকানাটি নিজেই ব্যক্তিগত, অথবা ::1/128 , 2000::/3 এবং ff00::/8 সাবনেট।

একটি স্থানীয় নেটওয়ার্ক একটি গন্তব্য যা IPv4-এর RFC1122- এর বিভাগ 3.2.1.3-এ সংজ্ঞায়িত "লুপব্যাক" স্থান ( 127.0.0.0/8 ) সমাধান করে, IPv4-এর RFC3927- এ সংজ্ঞায়িত "লিঙ্ক-স্থানীয়" স্থান ( 169.254.0.0/16 )। , "অনন্য স্থানীয় ঠিকানা" উপসর্গ ( fc00::/7 ) IPv6-এর RFC4193- এর ধারা 3-এ সংজ্ঞায়িত, অথবা IPv6-এর RFC4291- এর বিভাগ 2.5.6-এ সংজ্ঞায়িত "লিঙ্ক-স্থানীয়" উপসর্গ ( fe80::/10 )।

একটি পাবলিক নেটওয়ার্ক অন্য সব।

CORS-RFC1918-এ সরকারি, ব্যক্তিগত, স্থানীয় নেটওয়ার্কগুলির মধ্যে সম্পর্ক
CORS-RFC1918-এ সরকারি, ব্যক্তিগত, স্থানীয় নেটওয়ার্কগুলির মধ্যে সম্পর্ক।

CORS-RFC1918 সক্ষম করার জন্য Chrome-এর পরিকল্পনা৷

Chrome দুটি ধাপে CORS-RFC1918 নিয়ে আসছে:

ধাপ 1: ব্যক্তিগত নেটওয়ার্ক সংস্থানগুলির অনুরোধগুলি শুধুমাত্র HTTPS ওয়েব পৃষ্ঠাগুলি থেকে অনুমোদিত হবে৷

Chrome 87 একটি পতাকা যুক্ত করে যা সর্বজনীন ওয়েবসাইটগুলিকে ব্যক্তিগত নেটওয়ার্ক সংস্থানগুলিতে HTTPS-এ থাকার অনুরোধ করে৷ আপনি এটি সক্রিয় করতে about://flags#block-insecure-private-network-requests এ যেতে পারেন। এই পতাকাটি চালু করার সাথে সাথে, একটি HTTP ওয়েবসাইট থেকে একটি ব্যক্তিগত নেটওয়ার্ক সংস্থানের যেকোনো অনুরোধ ব্লক করা হবে৷

Chrome 88 থেকে শুরু করে, CORS-RFC1918 ত্রুটিগুলিকে কনসোলে CORS নীতি ত্রুটি হিসাবে রিপোর্ট করা হবে৷

CORS-RFC1918 ত্রুটিগুলি কনসোলে CORS নীতি ত্রুটি হিসাবে রিপোর্ট করা হবে৷
CORS-RFC1918 ত্রুটিগুলি কনসোলে CORS নীতি ত্রুটি হিসাবে রিপোর্ট করা হবে৷

Chrome DevTools-এর নেটওয়ার্ক প্যানেলে আপনি ব্লক করা অনুরোধগুলির উপর ফোকাস করার জন্য ব্লক করা অনুরোধ চেকবক্স সক্ষম করতে পারেন:

CORS-RFC1918 ত্রুটিগুলিও নেটওয়ার্ক প্যানেলে CORS ত্রুটি ত্রুটি হিসাবে রিপোর্ট করা হবে৷
CORS-RFC1918 ত্রুটিগুলিও নেটওয়ার্ক প্যানেলে CORS ত্রুটি ত্রুটি হিসাবে রিপোর্ট করা হবে৷

Chrome 87-এ CORS-RFC1918 ত্রুটিগুলি শুধুমাত্র DevTools কনসোলে ERR_INSECURE_PRIVATE_NETWORK_REQUEST হিসাবে রিপোর্ট করা হয়েছে৷

আপনি এই পরীক্ষার ওয়েবসাইট ব্যবহার করে নিজেই এটি চেষ্টা করতে পারেন।

ধাপ 2: একটি বিশেষ শিরোনাম সহ প্রিফ্লাইট অনুরোধ পাঠানো

ভবিষ্যতে, যখনই একটি সর্বজনীন ওয়েবসাইট একটি ব্যক্তিগত বা স্থানীয় নেটওয়ার্ক থেকে সংস্থানগুলি আনার চেষ্টা করবে, Chrome প্রকৃত অনুরোধের আগে একটি প্রিফ্লাইট অনুরোধ পাঠাবে৷

অনুরোধটিতে একটি Access-Control-Request-Private-Network: true হেডার। অন্যান্য জিনিসের মধ্যে, এই শিরোনামগুলি সূক্ষ্ম-দানাযুক্ত অ্যাক্সেস নিয়ন্ত্রণের অনুমতি দিয়ে অনুরোধ করার উত্সকে চিহ্নিত করে। সার্ভারটি একটি Access-Control-Allow-Private-Network: true শিরোনামটি স্পষ্টভাবে নির্দেশ করে যে এটি সংস্থানে অ্যাক্সেস দেয়।

প্রতিক্রিয়া চেয়েছিলেন

আপনি যদি একটি ব্যক্তিগত নেটওয়ার্কের মধ্যে একটি ওয়েবসাইট হোস্ট করেন যা সর্বজনীন নেটওয়ার্ক থেকে অনুরোধ আশা করে, Chrome টিম আপনার প্রতিক্রিয়া এবং ব্যবহারের ক্ষেত্রে আগ্রহী৷ সাহায্য করার জন্য আপনি দুটি জিনিস করতে পারেন:

  • about://flags#block-insecure-private-network-requests যান, পতাকা চালু করুন এবং দেখুন আপনার ওয়েবসাইট প্রত্যাশিতভাবে ব্যক্তিগত নেটওয়ার্ক সংস্থানে অনুরোধ পাঠাচ্ছে কিনা।
  • আপনি যদি কোনো সমস্যার সম্মুখীন হন বা প্রতিক্রিয়া পান, তাহলে crbug.com- এ একটি সমস্যা ফাইল করুন এবং কম্পোনেন্টটিকে Blink>SecurityFeature>CORS>RFC1918 এ সেট করুন।

উদাহরণ প্রতিক্রিয়া

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

এটি ঠিক সেই ধরনের প্রতিক্রিয়া যা Chrome খুঁজছে। অনুগ্রহ করে crbug.com- এ আপনার কংক্রিট ব্যবহারের ক্ষেত্রে একটি সমস্যা ফাইল করুন। Chrome আপনার কাছ থেকে শুনতে চাই।

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