ক্লায়েন্টের অভ্যন্তরীণ নেটওয়ার্কে থাকা ডিভাইস এবং সার্ভারগুলোর অনিচ্ছাকৃতভাবে বৃহত্তর ওয়েবের সংস্পর্শে আসার সাথে সম্পর্কিত ঝুঁকিগুলো প্রশমিত করুন।
Malicious websites making requests to devices and servers hosted on a private network have long been a threat. Attackers may, for example, change a wireless router's configuration to enable Man-in-the-Middle attacks. CORS-RFC1918 is a proposal to block such requests by default on the browser and require internal devices to opt-in to requests from the public internet.
এই পরিবর্তনটি ওয়েব ইকোসিস্টেমকে কীভাবে প্রভাবিত করে তা বোঝার জন্য, ক্রোম টিম প্রাইভেট নেটওয়ার্কের জন্য সার্ভার তৈরি করেন এমন ডেভেলপারদের কাছ থেকে মতামত চাইছে।
স্থিতাবস্থায় সমস্যাটা কী?
Many web servers run within a private network—wireless routers, printers, intranet websites, enterprise services, and Internet of Things (IoT) devices are only part of them. They might seem to be in a safer environment than the ones exposed to the public but those servers can be abused by attackers using a web page as a proxy. For example, malicious websites can embed a URL that, when simply viewed by the victim (on a JavaScript-enabled browser), attempts to change the DNS server settings on the victim's home broadband router. This type of attack is called " Drive-By Pharming " and it happened in 2014 . More than 300,000 vulnerable wireless routers were exploited by having their DNS settings changed and allowing attackers to redirect users to malicious servers.
CORS-RFC1918
অনুরূপ আক্রমণের ঝুঁকি প্রশমিত করতে, ওয়েব কমিউনিটি CORS-RFC1918 নিয়ে আসছে — যা হলো RFC1918- এ সংজ্ঞায়িত প্রাইভেট নেটওয়ার্কের জন্য বিশেষায়িত ক্রস অরিজিন রিসোর্স শেয়ারিং (CORS) ।
যেসব ব্রাউজার CORS প্রয়োগ করে, তারা টার্গেট রিসোর্সগুলো ভিন্ন অরিজিন থেকে লোড করা যাবে কিনা তা যাচাই করে দেখে। জটিলতার উপর নির্ভর করে, এই কাজটি করা হয় হয় অ্যাক্সেস বর্ণনা করে ইনলাইন অতিরিক্ত হেডার ব্যবহার করে, অথবা প্রিফ্লাইট রিকোয়েস্ট নামক একটি পদ্ধতির মাধ্যমে। আরও জানতে ক্রস অরিজিন রিসোর্স শেয়ারিং পড়ুন।
CORS-RFC1918 চালু হলে, ব্রাউজার ডিফল্টরূপে প্রাইভেট নেটওয়ার্কের মাধ্যমে রিসোর্স লোড করা ব্লক করে দেবে, শুধুমাত্র সেইসব রিসোর্স ছাড়া যেগুলো সার্ভার CORS এবং HTTPS ব্যবহার করে স্পষ্টভাবে অনুমতি দেয়। ঐসব রিসোর্সের জন্য অনুরোধকারী ওয়েবসাইটকে CORS হেডার পাঠাতে হবে এবং সার্ভারকেও সংশ্লিষ্ট CORS হেডার দিয়ে সাড়া দিয়ে স্পষ্টভাবে জানাতে হবে যে সে ক্রস-অরিজিন অনুরোধটি গ্রহণ করছে। (সুনির্দিষ্ট CORS হেডারগুলো এখনও উন্নয়নের অধীনে রয়েছে।)
এই ধরনের ডিভাইস বা সার্ভারের ডেভেলপারদের দুটি কাজ করতে অনুরোধ করা হবে:
- নিশ্চিত করুন যে প্রাইভেট নেটওয়ার্কে অনুরোধকারী ওয়েবসাইটটি HTTPS-এর মাধ্যমে পরিবেশিত হচ্ছে।
- CORS-RFC1918-এর জন্য সার্ভার সাপোর্ট সেট আপ করুন এবং প্রত্যাশিত HTTP হেডারসহ সাড়া দিন।
কোন ধরনের অনুরোধগুলো প্রভাবিত হবে?
প্রভাবিত অনুরোধগুলির মধ্যে রয়েছে:
- পাবলিক নেটওয়ার্ক থেকে প্রাইভেট নেটওয়ার্কে অনুরোধ
- একটি প্রাইভেট নেটওয়ার্ক থেকে লোকাল নেটওয়ার্কে অনুরোধ
- পাবলিক নেটওয়ার্ক থেকে লোকাল নেটওয়ার্কে অনুরোধ
একটি প্রাইভেট নেটওয়ার্ক হলো এমন একটি গন্তব্যস্থল যা IPv4-এ RFC1918- এর ৩ নং ধারায় সংজ্ঞায়িত প্রাইভেট অ্যাড্রেস স্পেসে রিজলভ হয়, একটি IPv4-ম্যাপ করা IPv6 অ্যাড্রেস যেখানে ম্যাপ করা IPv4 অ্যাড্রেসটি নিজেই প্রাইভেট, অথবা ::1/128 , 2000::/3 এবং ff00::/8 সাবনেটগুলোর বাইরের কোনো IPv6 অ্যাড্রেস।
একটি লোকাল নেটওয়ার্ক গন্তব্য যা IPv4-এর RFC1122- এর ৩.২.১.৩ অনুচ্ছেদে সংজ্ঞায়িত "লুপব্যাক" স্পেস ( 127.0.0.0/8 ), IPv4-এর RFC3927- এ সংজ্ঞায়িত "লিঙ্ক-লোকাল" স্পেস ( 169.254.0.0/16 ), IPv6-এর RFC4193-এর ৩ নং অনুচ্ছেদে সংজ্ঞায়িত "ইউনিক লোকাল অ্যাড্রেস" প্রিফিক্স ( fc00::/7 ), অথবা IPv6-এর RFC4291- এর ২.৫.৬ অনুচ্ছেদে সংজ্ঞায়িত "লিঙ্ক-লোকাল" প্রিফিক্স ( fe80::/10 )-এ রিজলভ হয়।
একটি পাবলিক নেটওয়ার্ক। অন্য সবাই।

Chrome's plans to enable CORS-RFC1918
ক্রোম দুটি ধাপে CORS-RFC1918 চালু করছে:
ধাপ ১: ব্যক্তিগত নেটওয়ার্ক রিসোর্সের জন্য অনুরোধ শুধুমাত্র HTTPS ওয়েব পেজ থেকেই অনুমোদিত হবে।
ক্রোম ৮৭-এ একটি ফ্ল্যাগ যুক্ত করা হয়েছে, যা অনুযায়ী পাবলিক ওয়েবসাইটগুলো থেকে প্রাইভেট নেটওয়ার্ক রিসোর্সে অনুরোধ করার ক্ষেত্রে HTTPS ব্যবহার করা বাধ্যতামূলক। এটি চালু করার জন্য আপনি about://flags#block-insecure-private-network-requests লিঙ্কে যেতে পারেন। এই ফ্ল্যাগটি চালু থাকলে, কোনো HTTP ওয়েবসাইট থেকে প্রাইভেট নেটওয়ার্ক রিসোর্সে করা যেকোনো অনুরোধ ব্লক হয়ে যাবে।
ক্রোম ৮৮ থেকে শুরু করে, CORS-RFC1918 ত্রুটিগুলো কনসোলে CORS পলিসি ত্রুটি হিসেবে রিপোর্ট করা হবে।

Chrome DevTools-এর নেটওয়ার্ক প্যানেলে, ব্লক করা অনুরোধগুলোর উপর দৃষ্টি নিবদ্ধ করতে আপনি ‘Blocked Requests’ চেকবক্সটি সক্রিয় করতে পারেন:

ক্রোম ৮৭-এ, CORS-RFC1918 ত্রুটিগুলো শুধুমাত্র DevTools Console-এ ERR_INSECURE_PRIVATE_NETWORK_REQUEST হিসেবে রিপোর্ট করা হয়।
এই পরীক্ষামূলক ওয়েবসাইটটি ব্যবহার করে আপনি নিজেই এটি পরীক্ষা করে দেখতে পারেন।
ধাপ ২: একটি বিশেষ হেডার সহ প্রিফ্লাইট অনুরোধ পাঠানো
ভবিষ্যতে, যখনই কোনো পাবলিক ওয়েবসাইট কোনো প্রাইভেট বা লোকাল নেটওয়ার্ক থেকে রিসোর্স আনার চেষ্টা করবে, ক্রোম মূল অনুরোধটি পাঠানোর আগে একটি প্রিফ্লাইট অনুরোধ পাঠাবে।
অনুরোধটিতে অন্যান্য CORS অনুরোধ হেডারের পাশাপাশি একটি Access-Control-Request-Private-Network: true হেডার অন্তর্ভুক্ত থাকবে। অন্যান্য বিষয়ের মধ্যে, এই হেডারগুলো অনুরোধকারী অরিজিনকে শনাক্ত করে, যা সূক্ষ্ম অ্যাক্সেস নিয়ন্ত্রণের সুযোগ দেয়। সার্ভারটি রিসোর্সটিতে অ্যাক্সেস মঞ্জুর করছে তা স্পষ্টভাবে বোঝানোর জন্য একটি Access-Control-Allow-Private-Network: true হেডার দিয়ে সাড়া দিতে পারে।
মতামত কাম্য।
আপনি যদি কোনো প্রাইভেট নেটওয়ার্কে এমন একটি ওয়েবসাইট হোস্ট করে থাকেন যা পাবলিক নেটওয়ার্ক থেকে রিকোয়েস্ট আশা করে, তবে ক্রোম টিম আপনার মতামত এবং ব্যবহারের ক্ষেত্রগুলো সম্পর্কে জানতে আগ্রহী। এক্ষেত্রে সাহায্য করার জন্য আপনি দুটি কাজ করতে পারেন:
-
about://flags#block-insecure-private-network-requests-এ যান, ফ্ল্যাগটি চালু করুন এবং দেখুন আপনার ওয়েবসাইট প্রত্যাশা অনুযায়ী প্রাইভেট নেটওয়ার্ক রিসোর্সে অনুরোধ পাঠাচ্ছে কিনা। - যদি আপনি কোনো সমস্যার সম্মুখীন হন বা আপনার কোনো মতামত থাকে, তাহলে crbug.com- এ একটি ইস্যু ফাইল করুন এবং কম্পোনেন্টটিকে
Blink>SecurityFeature>CORS>RFC1918এ সেট করুন।
উদাহরণ প্রতিক্রিয়া
আমাদের ওয়্যারলেস রাউটার একই প্রাইভেট নেটওয়ার্কের জন্য একটি অ্যাডমিন ওয়েবসাইট HTTP-এর মাধ্যমে পরিচালনা করে। যেসব ওয়েবসাইটে অ্যাডমিন ওয়েবসাইটটি এমবেড করা আছে, সেগুলোর জন্য যদি HTTPS-এর প্রয়োজন হয়, তবে তা মিক্সড কন্টেন্ট হয়ে যাবে। একটি ক্লোজড নেটওয়ার্কে আমাদের কি অ্যাডমিন ওয়েবসাইটে HTTPS চালু করা উচিত?
ক্রোম ঠিক এই ধরনের মতামতই খুঁজছে। অনুগ্রহ করে crbug.com- এ আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রটি উল্লেখ করে একটি সমস্যা রিপোর্ট করুন। ক্রোম আপনার কথা শুনতে আগ্রহী।