স্থানীয় নেটওয়ার্ক অ্যাক্সেসের জন্য নতুন অনুমতি প্রম্পট

ক্রিস থম্পসন
Chris Thompson

প্রকাশিত: ৯ জুন, ২০২৫

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

এই পরিবর্তনটি ওয়েব ইকোসিস্টেমের উপর কীভাবে প্রভাব ফেলবে তা বোঝার জন্য, Chrome টিম এমন ডেভেলপারদের কাছ থেকে প্রতিক্রিয়া খুঁজছে যারা এমন ওয়েব অ্যাপ্লিকেশন তৈরি করে যা ব্যবহারকারীর স্থানীয় নেটওয়ার্কের সাথে সংযোগ স্থাপনের উপর নির্ভর করে অথবা ব্যবহারকারীর মেশিনে স্থানীয়ভাবে চলমান সফ্টওয়্যারের সাথে। Chrome 138 থেকে, আপনি chrome://flags/#local-network-access-check গিয়ে এবং "Enabled (Blocking)" এ পতাকা সেট করে এই নতুন বিধিনিষেধগুলি বেছে নিতে পারেন।

লোকাল নেটওয়ার্ক অ্যাক্সেস কী?

স্থানীয় নেটওয়ার্ক অ্যাক্সেস ওয়েবসাইটগুলির ব্যবহারকারীর স্থানীয় নেটওয়ার্কের সার্ভারগুলিতে (ব্যবহারকারীর মেশিনে স্থানীয়ভাবে চলমান সার্ভার সহ) অনুরোধ পাঠানোর ক্ষমতাকে সীমাবদ্ধ করে, এই ধরনের অনুরোধ করার আগে ব্যবহারকারীকে সাইটের অনুমতি প্রদান করতে হয়। এই অনুমতির অনুরোধ করার ক্ষমতা সুরক্ষিত প্রেক্ষাপটের মধ্যে সীমাবদ্ধ।

'আপনার স্থানীয় নেটওয়ার্কের যেকোনো ডিভাইস খুঁজুন এবং সংযোগ করুন' লেখা সহ একটি প্রম্পট।
Chrome এর স্থানীয় নেটওয়ার্ক অ্যাক্সেস অনুমতি প্রম্পটের উদাহরণ।

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

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

লোকাল নেটওয়ার্ক অ্যাক্সেসের প্রথম মাইলফলকের জন্য, আমরা "লোকাল নেটওয়ার্ক রিকোয়েস্ট" কে পাবলিক নেটওয়ার্ক থেকে লোকাল নেটওয়ার্ক বা লুপব্যাক গন্তব্যে যেকোনো অনুরোধ হিসেবে বিবেচনা করি।

স্থানীয় নেটওয়ার্ক হলো এমন যেকোনো গন্তব্য যা স্থানীয় ব্যবহারের জন্য সংরক্ষিত ঠিকানাগুলিতে সমাধান করে। উদাহরণস্বরূপ, RFC1918 এর ধারা 3 এ উল্লেখিত ব্যক্তিগত IPv4 ঠিকানা (যেমন, 192.168.0.0/16 ), RFC3927 এ সংজ্ঞায়িত IPv4 "link-local" উপসর্গ ( 169.254.0.0/16 ), RFC4193 এর ধারা 3 এ সংজ্ঞায়িত IPv6 "Unique Local Address" উপসর্গ ( fc00::/7 ), RFC4291 এর ধারা 2.5.6 এ সংজ্ঞায়িত IPv6 "link-local" উপসর্গ ( fe80::/10 ), অথবা একটি IPv4-ম্যাপ করা IPv6 ঠিকানা ( ::ffff:0:0/96 ) যেখানে ম্যাপ করা IPv4 ঠিকানা নিজেই স্থানীয়।

লুপব্যাক হলো এমন যেকোনো গন্তব্য যা স্থানীয় মেশিনে (অর্থাৎ, "লুপব্যাক" ইন্টারফেস) সমাধান করে, যেমন RFC1122 এর ধারা 3.2.1.3 এ সংজ্ঞায়িত IPv4 লুপব্যাক প্রিফিক্স ( 127.0.0.0/8 ), অথবা RFC4291 এর ধারা 2.5.3 এ সংজ্ঞায়িত IPv6 লুপব্যাক ( ::1/128 ),।

ঠিকানা স্থানগুলিতে IP ঠিকানাগুলির সম্পূর্ণ ম্যাপিংয়ের জন্য, স্থানীয় নেটওয়ার্ক অ্যাক্সেস স্পেসিফিকেশনের টেবিলটি দেখুন।

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

যেহেতু স্থানীয় নেটওয়ার্ক অ্যাক্সেসের অনুমতি শুধুমাত্র সুরক্ষিত প্রসঙ্গে সীমাবদ্ধ, এবং স্থানীয় নেটওয়ার্ক ডিভাইসগুলিকে HTTPS-এ স্থানান্তর করা কঠিন হতে পারে, তাই অনুমতি-প্রাপ্ত স্থানীয় নেটওয়ার্ক অনুরোধগুলি এখন মিশ্র সামগ্রী পরীক্ষা থেকে অব্যাহতি পাবে যদি Chrome জানে যে অনুরোধগুলি গন্তব্য সমাধান করার আগে স্থানীয় নেটওয়ার্কে যাবে। Chrome জানে যে একটি অনুরোধ স্থানীয় নেটওয়ার্কে যাচ্ছে যদি:

  • অনুরোধের হোস্টনেমটি একটি ব্যক্তিগত আইপি আক্ষরিক (যেমন, 192.168.0.1 )।
  • অনুরোধকৃত হোস্টনামটি একটি .local ডোমেইন।
  • fetch() কলটি targetAddressSpace: "local".
// Example 1: Private IP literal is exempt from mixed content.
fetch("http://192.168.0.1/ping");

// Example 2: `.local` domain is exempt from mixed content.
fetch("http://router.local/ping");

// Example 3: Public domain is not exempt from mixed content,
// even if it resolves to a local network address.
fetch("http://example.com/ping");

// Example 4: Adding the `targetAddressSpace` option flags that
// the request will go to the local network, and is thus exempt
// from mixed content.
fetch("http://example.com/ping", {
  targetAddressSpace: "local",
});

Chrome-এ কী পরিবর্তন হচ্ছে

ক্রোম ১৩৮

আমাদের লোকাল নেটওয়ার্ক অ্যাক্সেসের প্রাথমিক সংস্করণটি Chrome 138-এ অপ্ট-ইন পরীক্ষার জন্য প্রস্তুত। ব্যবহারকারীরা chrome://flags#local-network-access-check কে "Enabled (Blocking)" এ সেট করে নতুন অনুমতি প্রম্পটটি সক্ষম করতে পারেন। এটি JavaScript fetch() API, সাবরিসোর্স লোডিং এবং সাবফ্রেম নেভিগেশন ব্যবহার করে শুরু করা অনুরোধগুলির জন্য লোকাল নেটওয়ার্ক অ্যাক্সেস অনুমতি প্রম্পটটি ট্রিগার করতে সহায়তা করে।

বিভিন্ন ধরণের স্থানীয় নেটওয়ার্ক অনুরোধ ট্রিগার করার জন্য https://lna-testing.notyetsecure.com/ এ একটি ডেমো সাইট পাওয়া যায়।

জ্ঞাত সমস্যা এবং সীমাবদ্ধতা

  • স্থানীয় নেটওয়ার্কের সাথে ওয়েবসকেট ( crbug.com/421156866 ), ওয়েবট্রান্সপোর্ট ( crbug.com/421216834 ), এবং ওয়েবআরটিসি ( crbug.com/421223919 ) সংযোগগুলি এখনও LNA অনুমতিতে গেটেড নয়।
  • সার্ভিস ওয়ার্কার্স এবং শেয়ার্ড ওয়ার্কার্সের স্থানীয় নেটওয়ার্ক অনুরোধের জন্য কর্মীর উৎপত্তিস্থলকে পূর্বে স্থানীয় নেটওয়ার্ক অ্যাক্সেসের অনুমতি দেওয়া প্রয়োজন।
    • যদি আপনার অ্যাপ্লিকেশনটি কোনও পরিষেবা কর্মীর কাছ থেকে স্থানীয় নেটওয়ার্ক অনুরোধ করে, তাহলে অনুমতি প্রম্পটটি ট্রিগার করার জন্য আপনাকে আপনার অ্যাপ্লিকেশন থেকে আলাদাভাবে একটি স্থানীয় নেটওয়ার্ক অনুরোধ ট্রিগার করতে হবে। (যদি কোনও সক্রিয় নথি উপলব্ধ থাকে তবে কর্মীরা যাতে অনুমতি প্রম্পটটি ট্রিগার করতে পারেন সে বিষয়ে আমরা কাজ করছি — crbug.com/404887282 দেখুন।)

Chrome 139 এবং তার পরেও

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

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

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

Chrome-এ Local Network Access সম্পূর্ণরূপে চালু করার কাছাকাছি পৌঁছানোর সাথে সাথে আমরা আরও তথ্য শেয়ার করব।

মতামত চাওয়া হলো

প্রাইভেট নেটওয়ার্ক অ্যাক্সেস ডেভেলপমেন্ট সম্পর্কে পূর্ববর্তী প্রতিক্রিয়া আমাদের নতুন লোকাল নেটওয়ার্ক অ্যাক্সেস অনুমতি পদ্ধতিতে পরিচালিত করার ক্ষেত্রে অবিশ্বাস্যভাবে মূল্যবান ছিল। আমরা আবারও বছরের পর বছর ধরে জড়িত সকলকে ধন্যবাদ জানাতে চাই।

যদি আপনি এমন কোনও ওয়েবসাইট তৈরি করেন বা ব্যবহারকারী হন যা ব্যবহারকারীর স্থানীয় নেটওয়ার্ক বা ব্যবহারকারীর মেশিনে স্থানীয়ভাবে চলমান সফ্টওয়্যারের সাথে সংযোগ স্থাপনের উপর নির্ভর করে, তাহলে Chrome টিম আপনার প্রতিক্রিয়া এবং ব্যবহারের ক্ষেত্রে আগ্রহী। সাহায্য করার জন্য আপনি দুটি জিনিস করতে পারেন:

  • chrome://flags#local-network-access-check এ যান, পতাকাটি "সক্রিয় (ব্লকিং)" এ সেট করুন, এবং দেখুন আপনার ওয়েবসাইটটি নতুন অনুমতি প্রম্পটটি সঠিকভাবে ট্রিগার করে কিনা (এবং অনুমতি দেওয়ার পরে প্রত্যাশা অনুযায়ী কাজ করে কিনা)।
  • যদি আপনার কোনও সমস্যা হয় বা আপনার প্রতিক্রিয়া থাকে, তাহলে Chromium Issue Tracker-এ অথবা আমাদের LNA স্পেসিফিকেশন GitHub রিপোজিটরিতে একটি সমস্যা দায়ের করুন। Chrome আপনার কাছ থেকে শুনতে আগ্রহী।