প্রমাণ
ওয়েবের সব সরঞ্জামের সাইটই লেখে যে তারা আপনার গোপনীয়তার মর্যাদা দেয়। আমরা বরং দেখিয়ে দিতে চাই কীভাবে তা যাচাই করবেন। তিনটি উপায় আছে, সবচেয়ে দ্রুতটি থেকে সবচেয়ে পুঙ্খানুপুঙ্খটি পর্যন্ত, আর একটিতেও প্রোগ্রামিং জানার দরকার নেই।
দ্রুত পদ্ধতি: নেটওয়ার্ক ইন্সপেক্টর
কী কী ভিতরে আসে আর কী কী বাইরে যায়, তার পুরো তালিকা ব্রাউজার নিজেই দেখায়। এটাই সবচেয়ে সরাসরি প্রমাণ, আর এতে দশ সেকেন্ড লাগে।
- এই সাইটের একটি সরঞ্জাম খুলুন
যেমন মেটাডেটা দেখার সরঞ্জামটি। পাতাটি পুরোপুরি লোড হওয়া পর্যন্ত অপেক্ষা করুন। - ইন্সপেক্টর খুলুন
Windows আর Linux-এ F12 বোতাম। Mac-এ Cmd + Option + I। ব্রাউজারের মেনু দিয়েও যাওয়া যায়, “Developer tools” বা “Inspect” ঘরে। - “Network” ট্যাবে যান
বাংলায় চালানো ব্রাউজারে এর নাম “নেটওয়ার্ক”। তারপর নিষেধের আইকনে বা “Clear”-এ ক্লিক করে তালিকাটি খালি করুন: পরীক্ষার আগে সেটি খালি থাকতেই হবে। - একটি ফাইল রাখুন আর সরঞ্জামটি চালান
এই মুহূর্তটিই আসল। সরঞ্জামটি যখন কাজ করছে আর আপনি যখন ফলাফলটি ডাউনলোড করছেন, তখন তালিকাটির দিকে তাকিয়ে থাকুন। - নিজের চোখে দেখুন
তালিকাটি খালিই থাকে। একটি লাইনও আসে না, ফাইল পড়ার সময়ও নয়, কাজ চলার সময়ও নয়, ডাউনলোডের সময়ও নয়, কারণ ডাউনলোডটি আপনার নিজের ব্রাউজারই ট্যাবের মেমরি থেকে বানায়।
একটি সৎ কথা: পাতাটি একেবারে প্রথমবার লোড হওয়ার সময় ইন্সপেক্টর কিছু লাইন দেখায় বটে। ওগুলি সাইটেরই নিজের ফাইল, পাতা, স্টাইলশিট, ফন্ট, স্ক্রিপ্ট, সবই এই একই ডোমেইন থেকে আসা। দেখার বিষয় হল ওই লোড হওয়ার পরে, কাজ চলার সময় কী হয়: ঠিক ওই সময়েই অন্য সাইটগুলি আপলোড করে, আর ঠিক ওই সময়েই তালিকাটি খালি থাকতে হবে।
যে পদ্ধতির বিরুদ্ধে আর কিছু বলার থাকে না: সংযোগ কেটে দিন
কাজ করতে যে সাইটের একটি সার্ভার লাগে, সেটি নেটওয়ার্ক ছাড়া কাজ করতে পারে না। এটি পারে।
- সংযোগ থাকতে থাকতে একবার সরঞ্জামটিতে যান
তখন সাইটটি আপনার ব্রাউজারের ভিতরে বসে যায়, ঠিক একটি অ্যাপ্লিকেশনের মতো। - নেটওয়ার্ক কেটে দিন
এরোপ্লেন মোড, বা তারটি খুলে দিন, বা ইন্সপেক্টরের Network ট্যাবটি “Offline”-এ নিয়ে যান। - পাতাটি আবার লোড করুন আর সরঞ্জামটি ব্যবহার করুন
সবকিছুই চলে: পাতা আসে, ফাইল রাখা যায়, কাজ হয়ে যায়, ফলাফল ডাউনলোড হয়। যে সাইট আপলোড করে, সে এটা পারে না।
পুঙ্খানুপুঙ্খ পদ্ধতি: কোডটি পড়ুন
সবচেয়ে ধীর আর সবচেয়ে শক্ত পদ্ধতি। এতে কোনো অ্যাকাউন্ট লাগে না, আলাদা কোনো সরঞ্জামও লাগে না।
- পাতার সোর্স কোড দেখুন
Ctrl + U, অথবা ডান ক্লিক করে “View page source”। এই সাইটের কোনো কোড কমপ্রেস করা বা ঘুলিয়ে দেওয়া নয়, আর এটি একটি ইচ্ছাকৃত সিদ্ধান্ত: যে কোড পড়া যায় না, তা যাচাইও করা যায় না। - সরঞ্জামটির ফাইলটি খুলুন
প্রতিটি সরঞ্জাম একটিমাত্র JavaScript ফাইল, নিজের নামেই নাম, এই ডোমেইন থেকেই লোড হয়। ভিতরে পাবেন ফাইল পড়ার অংশ, কাজ করার অংশ, আর ফলাফল বানানোর অংশ। - কী কিছু পাঠাতে পারে তা খুঁজুন
ব্রাউজারে তথ্য বাইরে পাঠানোর উপায় গুটিকয়েকই: খুঁজতে হবে fetch, XMLHttpRequest, sendBeacon, WebSocket, EventSource, আর চলতে চলতে বানানো ছবি বা স্ক্রিপ্টের ট্যাগ। কোনো সরঞ্জামের কোডে এগুলির একটিও পাবেন না।
আর একটি প্রমাণ যা আমাদেরই দেওয়ার কথা: যন্ত্রের প্রমাণ
উপরের তিনটি পদ্ধতি আপনারই: ওগুলি দিয়ে আমাদের ছাড়াই যাচাই করা যায়। চতুর্থটি আমাদেরই বাঁধে।
সাইটের প্রতিটি প্রকাশের আগে একটি প্রোগ্রাম সত্যিকারের একটি ব্রাউজার চালু করে, প্রতিটি সরঞ্জামের পাতা খোলে, সেখানে সত্যিকারের একটি পরীক্ষার ফাইল রাখে, কাজ চালায়, আর নেটওয়ার্কের উপরে নজর রাখে ব্রাউজারের নিজের স্তরে, পাতার কোডের স্তরে নয়। কাজ চলার সময় অন্য কোনো সার্ভারে একটি রিকোয়েস্টও বেরোতে দেখলে প্রকাশ আটকে যায়। শুধু চিহ্নিত করা নয়: আটকে দেওয়া।
প্রকল্পের এই একটিমাত্র যাচাই-তালা আছে যাকে একটি লেখা বদলে এড়ানো যায় না। প্রকল্পের ফোল্ডারে এটি “validate-localite” নামে থাকে, আর প্রতিবারই চলে।