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

কেন টানেল একটি উপ-সম্পদ ঢাকতে পারে না

মিশ্র বিষয়বস্তুর শুরু এমন একটি HTTPS নথি দিয়ে যা সাধারণ HTTP-তে উপ-সম্পদ চায়। প্রতিটি URL তার নিজস্ব স্কিমে বিচার হয়, তাই মূল নথির সুরক্ষা কখনও সন্তান অনুরোধে ছড়ায় না। ব্রাউজারের নিচে যোগ করা এনক্রিপশন তারে যা যায় তা বদলায়, মার্কআপ যে http:// চেয়েছিল তা নয়।

বর্তমান ব্রাউজারগুলি এই অনুরোধগুলিকে দুটি দলে ভাগ করে ভিন্নভাবে সামলায়। স্ক্রিপ্ট, স্টাইলশিট, iframe এবং fetch, XMLHttpRequest বা WebSocket দিয়ে করা কল সরাসরি প্রত্যাখ্যাত হয়, আগে কোনো upgrade চেষ্টা ছাড়াই। ছবি, অডিও এবং ভিডিও https:// এ পুনরায় লেখা হয় এবং আবার চাওয়া হয়, এবং সেই নিরাপদ সংগ্রহ ব্যর্থ হলে লোডিং ছেড়ে দেওয়া হয়। যে উপ-সম্পদের হোস্ট একটি খালি IP ঠিকানা, সেই URL upgrade থেকে মুক্ত, তাই IP হোস্টে HTTP ছবি চুপচাপ ঠিক হওয়ার বদলে অবরুদ্ধ থাকে। এই বিভাজন, upgrade করা যায় এমন দিকের সেই ছাড়সহ, এখানে নথিভুক্ত: Mozilla-র মিশ্র বিষয়বস্তু নির্দেশিকায়। Chrome নিরাপদ পৃষ্ঠা থেকে শুরু হওয়া অসুরক্ষিত ডাউনলোডেও অনুরূপ প্রত্যাখ্যান প্রয়োগ করে, তাই PDF লিঙ্ক মরে যেতে পারে যখন আশপাশের পৃষ্ঠা অক্ষত দেখায়।

সুতরাং ধূসর সারি নিয়ন্ত্রণ কাজ করছে তার প্রমাণ, টানেল সাধারণ পাঠ্য ছেড়েছে তার প্রমাণ নয়। সারিটিকে একটি রেফারেন্সের দিকে ইশারা করা একটি সন্ধান হিসেবে দেখুন, পুরো পৃষ্ঠার দিকে নয়।

অসুরক্ষিত রেফারেন্স কার তা নির্ধারণ করুন

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

URL কোথা থেকে আসেকে এটি ঠিক করতে পারেপ্রথম ধাপ
আপনি যে টেমপ্লেট বা আংশিকে স্থাপন করেন তাতে হার্ড-কোড করাআপনিএটি https:// রূপে বদলান এবং তারপর ক্যাশে সাফ করুন
ট্যাগ ম্যানেজার বা সরবরাহকারী বান্ডল দ্বারা ঢোকানোসরবরাহকারী, আপনার টিকিটসহসঠিক URL, অনুরোধের ধরন এবং কনসোল লাইন পাঠান
কেবল পোর্ট 80-এ TLS শ্রোতা ছাড়া পরিবেশন করা হয়হোস্টের মালিকTLS চান, আপনার নিয়ন্ত্রণের কিছু সামনে রাখুন, বা এটি ছেড়ে দিন

যখন হোস্ট ইতিমধ্যে 443-এ উত্তর দেয় এবং কেবল রেফারেন্স http বলে, সংশোধন স্থানীয়: রেফারেন্স বদলান, পৃষ্ঠার ক্যাশে সাফ করুন এবং সারি https হয়েছে তা নিশ্চিত করুন। যে হোস্ট কেবল পোর্ট 80-এ শোনে তাকে সম্পাদনা দিয়ে সঙ্গত করা যায় না, তাই সম্পদ স্থানান্তরিত হয়, তার সামনে আপনার নিয়ন্ত্রণের কিছু রাখা হয়, বা এটি অদৃশ্য হয়। ট্যাগ ম্যানেজারের ঢোকানো URL আপনার নিজের টেমপ্লেট পরিষ্কার থাকলেও দেখা যায়, এবং সেই মামলাটি সঠিক URL ও কনসোল লাইন সংযুক্ত এমন টিকিটের। কর্মীদের অসুরক্ষিত বিষয়বস্তু অনুমোদন করতে বলা এই বিকল্পগুলির কোনওটি নয়, কারণ এটি সেই ব্রাউজার প্রোফাইল যে সাইটই পরিদর্শন করে তার জন্য যাচাই বন্ধ করে দেয়।

ব্রাউজার সেটিং নয়, রেফারেন্স ঠিক করুন

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

curl -sSI https://cdn.example.org/vendor.js | head -n 1
curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' -L https://cdn.example.org/vendor.js

দুটি সহায়ক নিয়ন্ত্রণ জানার যোগ্য এবং কোনওটিই সংশোধনের বিকল্প নয়। Content-Security-Policy হেডার যাতে upgrade-insecure-requests ব্রাউজারকে পৃষ্ঠা ছাড়ার আগে http উপ-সম্পদ URL পুনরায় লিখতে বাধ্য করে, যা আপনি এখনও খুঁজে পাননি এমন পুরোনো রেফারেন্স ধরে। পুনরায় লেখা অনুরোধ লক্ষ্য হোস্ট HTTPS পরিবেশন না করলে তবুও ব্যর্থ হয়, তাই হেডার কেবল ব্রাউজার কোন URL চেষ্টা করে তা বদলায়। HSTS প্রতিটি হোস্টে প্রযোজ্য, অর্থাৎ আপনার নিজের ডোমেনের নীতি এমন তৃতীয় পক্ষের CDN-এর জন্য কিছুই করে না যে কখনও এই হেডার পাঠায়নি। টেমপ্লেট বদলানোর পরে পৃষ্ঠার ক্যাশে সাফ করুন এবং রেন্ডার করা HTML-এ পুরোনো হোস্ট নাম খুঁজুন, কারণ একই URL কোনও আংশিক, অনুবাদ স্ট্রিং বা ডেটাবেস ফিল্ড থেকেও আসতে পারে।

রিডাইরেক্টও অনুসরণ করুন, কারণ https:// দিয়ে শুরু হওয়া শৃঙ্খল http:// স্থানে নামতে পারে এবং ব্রাউজার শেষ লাফের বিচার করে। দ্বিতীয় কমান্ডের -L আকৃতি উপরের সেই কার্যকর URL আপনার জন্য প্রিন্ট করে। যদি শেষ লাফ শুদ্ধ http হয়, রেফারেন্স এখনও ভুল যদিও আপনার সম্পাদিত লিঙ্ক ঠিক দেখাচ্ছিল।

কনসোল এবং নেটওয়ার্ক প্যানেল দিয়ে পৃষ্ঠা নিশ্চিত করুন

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

যখন সম্পদ অন্য কারও, চারটি জিনিস পাঠান: সঠিক URL, অনুরোধের ধরন, কনসোল পাঠ্য এবং যে পৃষ্ঠায় এটি দেখা যায়। টিকিটে আটকানো সবকিছু থেকে সেশন শনাক্তকারী লুকান। যে প্রতিবেদন কেবল বলে ছবিগুলি নষ্ট, তা মালিককে খোঁজার কিছু দেয় না।

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

সম্পর্কিত নিবন্ধ