VPN-এর পিছনে মিশ্র কনটেন্ট: সম্পদ ঠিক করুন, টানেল নয়
তালাটি নথিটি বোঝায়, তার লোড করা স্ক্রিপ্টগুলি নয়। কনসোল পড়ুন, ব্লকটি রাখুন, উৎসেই রেফারেন্সটি সারান, তারপর পৃষ্ঠাটি আবার পরীক্ষা করুন।
HTTP দিয়ে স্ক্রিপ্ট লোড করা একটি HTTPS পৃষ্ঠা দুটি ভিন্ন সুরক্ষা স্তরে দুটি অনুরোধ করে, আর তালাটি কেবল প্রথমটির কথা বলে। টানেল এটি বদলায় না, কারণ এটি পরিবাহককে রক্ষা করে, সম্পদের নিজস্ব স্কিমকে নয়। আপনি অ্যাড্রেস বার নয়, কনসোল পড়লে ব্রাউজার ইতিমধ্যেই বলছে কোন অনুরোধটি ব্যর্থ হয়েছে। তিনটি যাচাই আপনাকে আংশিক কাজ করা পৃষ্ঠা থেকে প্রকৃত মেরামতে নিয়ে যায়।
অনুরোধটি পড়ুন, অ্যাড্রেস বার নয়
HTTPS-এ আনা একটি নথি সাধারণ HTTP দিয়ে একটি স্ক্রিপ্ট, স্টাইলশিট, ফন্ট বা ফ্রেম উল্লেখ করতে পারে। সেই রেফারেন্স একটি আলাদা অনুরোধ, এবং ব্রাউজার যে এটির কথাই অভিযোগ করে। মূল নথির সুরক্ষা এতে পিছনে যায় না, আর দুই প্রবাহ বহনকারী টানেল কোনও স্কিমই বদলায় না। তাই পৃষ্ঠাটি একসাথে সত্যিই নিরাপদ ও সত্যিই ভাঙা হতে পারে।
সম্পদটিকে শুধু একটি অন্তর্ভুক্ত ফাইল বলা এর প্রতিস্থাপনকে নিরীহ করে না।
অনিরাপদ স্ক্রিপ্ট বিষয়বস্তু পথে বদলে পরে চালানো গেলে তা পৃষ্ঠার আচরণ বদলাতে পারে, যা একটি চাক্ষুষ ত্রুটির চেয়ে বড় সমস্যা। ছবিগুলি পথে পরিবর্তিত হলে ছোট কিন্তু বাস্তব ঝুঁকি বহন করে। তালাটি কোনও বিষয়ে মিথ্যা বলছে না। এটি আপনার করা প্রশ্নের চেয়ে সংকীর্ণ প্রশ্নের উত্তর দিচ্ছে।
কোন সম্পদ ব্লক হয় আর কোনটি উন্নীত হয় জানুন
ব্রাউজারগুলি প্রতিটি ধরনের সম্পদকে একভাবে দেখে না। মিশ্র কনটেন্ট নির্দেশিকা HTTPS-এ উন্নীত করা অনুরোধগুলিকে সম্পূর্ণ ব্লক করা অনুরোধ থেকে আলাদা করে, যেখানে স্ক্রিপ্ট, স্টাইলশিট ও প্রোগ্রামভিত্তিক অনুরোধ ব্লক করা দিকে থাকে, আর ছবি ও মিডিয়া এর বদলে উন্নীত বা চিহ্নিত হতে পারে।
এই পার্থক্যই বিভ্রান্তিকর প্রতিবেদনগুলির ব্যাখ্যা দেয়। ব্লক করা স্ক্রিপ্টযুক্ত পৃষ্ঠা একটি বৈশিষ্ট্য সম্পূর্ণ হারায়, আর উন্নীত ছবিযুক্ত পৃষ্ঠা ভালো দেখায় অথচ চুপচাপ তার অনুরোধ বদলে ফেলেছে। নথিভুক্ত শ্রেণিগুলির ব্যতিক্রমও আছে, তাই একটি নির্দিষ্ট ধরনের প্রতিটি URL সফলভাবে উন্নীত হবে বলে ধরে নেবেন না। ফাইলের এক্সটেনশন থেকে যুক্তি না করে কনসোল নির্দিষ্ট অনুরোধ সম্পর্কে কী বলে তা পড়ুন।
ব্লক করা উইজেট টানেল ব্যর্থ হয়েছে তার প্রমাণ নয়। এটি প্রমাণ যে ব্রাউজার তার কাজ করেছে।
উৎসেই রেফারেন্সটি সারান
সাইটের মালিকের জন্য মেরামতটি সেখানেই যেখানে অনিরাপদ URL লেখা হয়েছিল: একটি টেমপ্লেট, একটি স্টাইলশিট, URL জোড়া দেয় এমন একটি স্ক্রিপ্ট, বা তৃতীয় পক্ষের একটি উপাদান। দৃশ্যমান পৃষ্ঠা ঠিকানা বদলালে এর কোনওটিই অক্ষত থাকে না। উৎসে হোস্টটি খুঁজুন এবং কনসোল যে একটির নাম বলেছে কেবল সেটিই নয়, প্রতিটি রেফারেন্স সারান।
তারপর নিশ্চিত করুন যে সম্পদটি সত্যিই বৈধ পরিচয়সহ HTTPS-এ পরিবেশিত হয়, কারণ স্কিম বদল কখনও সেখানে প্রকাশিত হয়নি এমন একটি পরিষেবা সৃষ্টি করতে পারে না।
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1রিডাইরেক্টগুলিও অনুসরণ করুন, কারণ HTTPS দিয়ে শুরু হওয়া রেফারেন্সও প্লেইনটেক্সট পরিবেশনের পথে গিয়ে পড়তে পারে। কোনও নির্ভরতার নিরাপদ পরিবেশনা না থাকলে, একটি কাজের সমাধান পাঠানোর বদলে স্বাভাবিক পরিবর্তন প্রক্রিয়ায় সেটি সরান বা প্রতিস্থাপন করুন। ব্যবহারকারীর জন্য ব্রাউজার সুরক্ষা চালু রাখুন এবং সাইটের মালিককে সম্পদের URL, তার ধরন ও কনসোল বার্তাটি জানান। এক পৃষ্ঠার জন্য কর্মীদের অনিরাপদ কনটেন্ট অনুমোদন করতে বলা নির্দেশ কখনও ছড়াবেন না, কারণ সেই ব্যতিক্রমটি যে ঘটনা এটি ডেকে এনেছিল তার চেয়ে বেশি দিন টেকে।
ব্যবহারকারীরা যেভাবে পৃষ্ঠাটি স্পর্শ করে সেভাবেই আবার পরীক্ষা করুন
কেবল প্রথম নথিটি নয়, চাহিদা অনুযায়ী সম্পদ লোড করে এমন কাজগুলিও চালান। বোতাম চাপার পর পৃষ্ঠাগুলি অতিরিক্ত কোড, ডেটা ও ডাউনলোড আনে, আর সেই অনুরোধগুলিই প্রায়ই অনিরাপদ। সুরক্ষা চালু রেখেই নির্দিষ্ট অনুরোধ ও দৃশ্যমান আচরণ নিশ্চিত করুন। শিথিল ব্রাউজার প্রোফাইল দিয়ে শুরু করা পরীক্ষা সাধারণ ব্যবহারকারী কী দেখেন তা আপনাকে দেখাতে পারে না।
টানেলের নিজস্ব কাজ এখনও আছে, আর সেই কাজটি নেটওয়ার্ক অ্যাক্সেস, পৃষ্ঠার অখণ্ডতা নয়।
ট্রাফিক টানেলের প্রান্তবিন্দু ছাড়ার পর, অবশিষ্ট যে কোনও HTTP অনুরোধ পরিবাহক থেকে কিছুই পায়নি। সম্পদের পথটি ঠিক করুন এবং ব্রাউজার প্রয়োগটি যথাস্থানে রাখুন। একটি অনিরাপদ নির্ভরতার মেরামত হিসেবে আরও একটি পরিবহন স্তরকে গণ্য করাই সেই পথ যেখানে একটি দল এমন একটি হেল্প-ডেস্ক স্ক্রিপ্টে পৌঁছে যা সঠিকভাবে কাজ করা নিয়ন্ত্রণটি বন্ধ করে দেয়।