বোঝার "একই-সাইট" এবং "একই-উৎস"

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

উৎপত্তি

উৎপত্তি

"অরিজিন" হল একটি স্কিমের সংমিশ্রণ ( প্রটোকল হিসাবেও পরিচিত, উদাহরণস্বরূপ HTTP বা HTTPS ), হোস্টনাম এবং পোর্ট (যদি নির্দিষ্ট করা থাকে)। উদাহরণস্বরূপ, https://www.example.com:443/foo এর একটি URL দেওয়া হয়েছে, "অরিজিন" হল https://www.example.com:443

"একই-অরিজিন" এবং "ক্রস-অরিজিন"

যে ওয়েবসাইটগুলিতে একই স্কিম, হোস্টনাম এবং পোর্টের সমন্বয় রয়েছে সেগুলিকে "একই-অরিজিন" হিসাবে বিবেচনা করা হয়। বাকি সবকিছু "ক্রস-অরিজিন" হিসাবে বিবেচিত হয়।

উৎপত্তি এ উৎপত্তি বি মূল A এবং B "একই-উৎস" বা "ক্রস-অরিজিন" কিনা তার ব্যাখ্যা
https://www.example.com:443 https://www.evil.com :443 ক্রস-অরিজিন: বিভিন্ন ডোমেইন
https:// example.com :443 ক্রস-অরিজিন: বিভিন্ন সাবডোমেন
https:// লগইন .example.com:443 ক্রস-অরিজিন: বিভিন্ন সাবডোমেন
http://www.example.com:443 ক্রস-অরিজিন: বিভিন্ন স্কিম
https://www.example.com: ৮০ ক্রস-অরিজিন: বিভিন্ন পোর্ট
https://www.example.com:443 same-origin: সঠিক মিল
https://www.example.com একই-অরিজিন: অন্তর্নিহিত পোর্ট নম্বর (443) মেলে

সাইট

সাইট (TLD+1)

টপ-লেভেল ডোমেইন (TLDs) যেমন .com এবং .org রুট জোন ডেটাবেসে তালিকাভুক্ত করা হয়েছে। উপরের উদাহরণে, "সাইট" হল স্কিম , TLD এবং ডোমেনের ঠিক আগের অংশের সংমিশ্রণ (আমরা এটিকে TLD+1 বলি)। উদাহরণস্বরূপ, https://www.example.com:443/foo এর একটি URL দেওয়া হয়েছে, "সাইট" হল https://example.com

পাবলিক প্রত্যয় তালিকা এবং eTLD

.co.jp বা .github.io এর মতো জিনিসগুলি অন্তর্ভুক্ত করে এমন ডোমেনের জন্য, শুধুমাত্র .jp বা .io ব্যবহার করা "সাইট" সনাক্ত করার জন্য যথেষ্ট দানাদার নয়। একটি নির্দিষ্ট TLD এর জন্য নিবন্ধনযোগ্য ডোমেনের স্তর অ্যালগরিদমিকভাবে নির্ধারণ করার কোন উপায় নেই। এজন্য পাবলিক সাফিক্স তালিকায় সংজ্ঞায়িত পাবলিক প্রত্যয়ের একটি তালিকা তৈরি করা হয়েছিল। এই সর্বজনীন প্রত্যয়গুলিকে কার্যকর TLDs (eTLDs) ও বলা হয়। eTLD-এর তালিকা publicsuffix.org/list- এ রক্ষণাবেক্ষণ করা হয়।

একটি eTLD অন্তর্ভুক্ত একটি ডোমেনের "সাইট" অংশ সনাক্ত করতে, .com এর উদাহরণের মতো একই অনুশীলন প্রয়োগ করুন। উদাহরণ হিসাবে https://www.project.github.io:443/foo নিলে, স্কিমটি হল https , eTLD হল .github.io এবং eTLD+1 হল project.github.io , তাই https://project.github.io এই URL এর জন্য "সাইট" হিসাবে বিবেচিত হয়৷

সাইট (eTLD+1)

"একই-সাইট" এবং "ক্রস-সাইট"

যে ওয়েবসাইটগুলিতে একই স্কিম এবং একই eTLD+1 আছে সেগুলিকে "একই-সাইট" হিসাবে বিবেচনা করা হয়। যে ওয়েবসাইটগুলির একটি ভিন্ন স্কিম বা একটি ভিন্ন eTLD+1 আছে সেগুলি হল "ক্রস-সাইট"।

উৎপত্তি এ উৎপত্তি বি মূল A এবং B "একই-সাইট" বা "ক্রস-সাইট" কিনা তার ব্যাখ্যা
https://www.example.com:443 https://www.evil.com :443 ক্রস-সাইট: বিভিন্ন ডোমেইন
https:// লগইন .example.com:443 একই-সাইট: ভিন্ন সাবডোমেন কোন ব্যাপার না
http://www.example.com:443 ক্রস-সাইট: বিভিন্ন স্কিম
https://www.example.com: ৮০ একই-সাইট: বিভিন্ন পোর্ট কোন ব্যাপার না
https://www.example.com:443 same-site: সঠিক মিল
https://www.example.com একই-সাইট: পোর্ট কোন ব্যাপার না

"পরিকল্পিত একই সাইট"

পরিকল্পনাহীন একই-সাইট

"একই-সাইট" এর সংজ্ঞাটি বিকশিত হয়েছে URL স্কিমটিকে সাইটের অংশ হিসাবে বিবেচনা করার জন্য যাতে HTTP-কে একটি দুর্বল চ্যানেল হিসাবে ব্যবহার করা না হয়। স্কিম তুলনা ছাড়া "একই-সাইট" এর পুরানো ধারণাটিকে এখন "স্কিমহীন একই-সাইট" বলা হয়। উদাহরণস্বরূপ, http://www.example.com এবং https://www.example.com স্কিমলেস একই-সাইট হিসাবে বিবেচিত হয় কিন্তু একই-সাইট নয়, কারণ শুধুমাত্র eTLD+1 অংশ গুরুত্বপূর্ণ এবং স্কিমটি বিবেচনায় নেওয়া হয় না .

উৎপত্তি এ উৎপত্তি বি মূল A এবং B "স্কিমলেস একই-সাইট" কিনা তার ব্যাখ্যা
https://www.example.com:443 https://www.evil.com :443 ক্রস-সাইট: বিভিন্ন ডোমেইন
https:// লগইন .example.com:443 স্কিমহীন একই-সাইট: বিভিন্ন সাবডোমেন কোন ব্যাপার না
http://www.example.com:443 স্কিমহীন একই-সাইট: বিভিন্ন স্কিম কোন ব্যাপার না
https://www.example.com: ৮০ স্কিমহীন একই-সাইট: বিভিন্ন পোর্ট কোন ব্যাপার না
https://www.example.com:443 পরিকল্পনাহীন একই-সাইট: সঠিক মিল
https://www.example.com স্কিমহীন একই-সাইট: পোর্ট কোন ব্যাপার না

একটি অনুরোধ "একই-সাইট", "একই-উৎস" বা "ক্রস-সাইট" কিনা তা কীভাবে পরীক্ষা করবেন

সমস্ত আধুনিক ব্রাউজার ( শীঘ্রই সাফারি সমর্থন অবতরণ ) একটি Sec-Fetch-Site HTTP হেডার সহ অনুরোধ পাঠায়। হেডারে নিম্নলিখিত মানগুলির মধ্যে একটি রয়েছে:

  • cross-site
  • same-site
  • same-origin
  • none

Sec-Fetch-Site এর মান পরীক্ষা করে, আপনি অনুরোধটি "একই-সাইট", "একই-উৎস" বা "ক্রস-সাইট" কিনা তা নির্ধারণ করতে পারেন।