মিশ্র বিষয়বস্তু ফিক্সিং

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

এই নির্দেশিকায় আমরা বিদ্যমান মিশ্র কন্টেন্ট সমস্যা সমাধান এবং নতুন সমস্যা তৈরি হওয়া প্রতিরোধের কৌশল ও পদ্ধতি প্রদর্শন করব।

আপনার সাইট ভিজিট করে মিশ্র বিষয়বস্তু খুঁজে পাওয়া যাচ্ছে

গুগল ক্রোমে কোনো HTTPS পৃষ্ঠা দেখার সময়, ব্রাউজারটি জাভাস্ক্রিপ্ট কনসোলে ত্রুটি এবং সতর্কবার্তা হিসেবে মিশ্র বিষয়বস্তু সম্পর্কে আপনাকে সতর্ক করে।

“মিশ্র কন্টেন্ট কী?” -তে আপনি বেশ কিছু উদাহরণ খুঁজে পাবেন এবং দেখতে পাবেন কীভাবে Chrome DevTools-এ সমস্যাগুলো রিপোর্ট করা হয়।

প্যাসিভ মিক্সড কন্টেন্টের উদাহরণটি নিম্নলিখিত সতর্কতাগুলো দেবে। যদি ব্রাউজার কোনো https URL-এ কন্টেন্টটি খুঁজে পায়, তবে এটি স্বয়ংক্রিয়ভাবে সেটিকে আপগ্রেড করে এবং তারপর একটি বার্তা দেখায়।

মিক্সড কন্টেন্ট শনাক্ত ও আপগ্রেড করা হলে যে সতর্কবার্তাগুলো প্রদর্শিত হয়, তা ক্রোম ডেভটুলস-এ দেখানো হচ্ছে।

সক্রিয় মিশ্র কন্টেন্ট ব্লক করা হয়েছে এবং একটি সতর্কবার্তা দেখানো হচ্ছে।

সক্রিয় মিশ্র কন্টেন্ট ব্লক করা হলে যে সতর্কবার্তাগুলো প্রদর্শিত হয়, তা ক্রোম ডেভটুলস-এ দেখানো হচ্ছে।

আপনার সাইটে http:// ইউআরএল-এর জন্য এই ধরনের সতর্কবার্তা পেলে, আপনাকে সাইটের সোর্স কোডে সেগুলো ঠিক করতে হবে। এগুলো ঠিক করার সময় ব্যবহারের জন্য, যে পেজে এগুলো পাওয়া গেছে সেই পেজসহ ইউআরএলগুলোর একটি তালিকা তৈরি করে রাখলে সুবিধা হয়।

আপনার সাইটে মিশ্র বিষয়বস্তু খুঁজে পাওয়া যাচ্ছে

আপনি সরাসরি আপনার সোর্স কোডে মিক্সড কন্টেন্ট খুঁজতে পারেন। আপনার সোর্সে http:// খুঁজুন এবং এমন ট্যাগগুলো সন্ধান করুন যেগুলোতে HTTP URL অ্যাট্রিবিউট অন্তর্ভুক্ত আছে। মনে রাখবেন যে, অ্যাঙ্কর ট্যাগের ( <a> ) href অ্যাট্রিবিউটে http:// থাকাটা সাধারণত মিক্সড কন্টেন্টের সমস্যা নয়, তবে পরে আলোচনা করা কিছু উল্লেখযোগ্য ব্যতিক্রম রয়েছে।

আপনার সাইটটি যদি কোনো কন্টেন্ট ম্যানেজমেন্ট সিস্টেম (CMS) ব্যবহার করে প্রকাশিত হয়ে থাকে, তাহলে পেজ প্রকাশের সময় অনিরাপদ URL-এর লিঙ্ক যুক্ত হয়ে যাওয়ার সম্ভাবনা থাকে। উদাহরণস্বরূপ, ছবিগুলো রিলেটিভ পাথের পরিবর্তে সম্পূর্ণ URL-সহ অন্তর্ভুক্ত হতে পারে। আপনাকে CMS কন্টেন্টের মধ্যেই এগুলো খুঁজে বের করে ঠিক করতে হবে।

মিশ্র বিষয়বস্তু ঠিক করা

আপনার সাইটের সোর্সে মিশ্র কন্টেন্ট খুঁজে পেলে, তা ঠিক করার জন্য আপনি এই ধাপগুলো অনুসরণ করতে পারেন।

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

যদি রিসোর্সটি https:// এর মাধ্যমে উপলব্ধ না হয়, তাহলে আপনার নিম্নলিখিত বিকল্পগুলির মধ্যে একটি বিবেচনা করা উচিত:

  • অন্য কোনো হোস্ট থেকে রিসোর্সটি অন্তর্ভুক্ত করুন, যদি তা উপলব্ধ থাকে।
  • যদি আইনত অনুমতি থাকে, তবে সরাসরি আপনার সাইটে কন্টেন্টটি ডাউনলোড ও হোস্ট করুন।
  • আপনার সাইট থেকে রিসোর্সটি সম্পূর্ণরূপে বাদ দিন।

সমস্যাটি সমাধান করার পর, যে পৃষ্ঠায় আপনি প্রথমে ত্রুটিটি পেয়েছিলেন সেটি দেখুন এবং যাচাই করুন যে ত্রুটিটি আর দেখা যাচ্ছে না।

অপ্রচলিত ট্যাগ ব্যবহার সম্পর্কে সতর্ক থাকুন।

আপনার সাইটে ট্যাগের অপ্রচলিত ব্যবহার সম্পর্কে সতর্ক থাকুন। উদাহরণস্বরূপ, অ্যাঙ্কর ( <a> ) ট্যাগযুক্ত ইউআরএল মিক্সড কন্টেন্ট এরর তৈরি করে না, কারণ এগুলো ব্রাউজারকে একটি নতুন পেজে নিয়ে যায়। এর মানে হলো, এগুলো সাধারণত ঠিক করার প্রয়োজন হয় না। তবে কিছু ইমেজ গ্যালারি স্ক্রিপ্ট <a> ট্যাগের কার্যকারিতাকে অগ্রাহ্য করে এবং href অ্যাট্রিবিউট দ্বারা নির্দিষ্ট HTTP রিসোর্সটিকে পেজের একটি লাইটবক্স ডিসপ্লেতে লোড করে, যা মিক্সড কন্টেন্ট সমস্যার সৃষ্টি করে।

বৃহৎ পরিসরে মিশ্র বিষয়বস্তু পরিচালনা করুন

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

বিষয়বস্তু নিরাপত্তা নীতি

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

আপনার সার্ভার থেকে পাঠানো রেসপন্সে Content-Security-Policy অথবা Content-Security-Policy-Report-Only হেডার অন্তর্ভুক্ত করে আপনি একটি পেজের জন্য এই ফিচারগুলো সক্রিয় করতে পারেন। এছাড়াও, আপনি আপনার পেজের <head> সেকশনে একটি <meta> ট্যাগ ব্যবহার করে Content-Security-Policy সেট করতে পারেন (তবে Content-Security-Policy-Report-Only নয় )।

বিষয়বস্তু সুরক্ষা নীতির সাথে মিশ্র বিষয়বস্তু খুঁজে পাওয়া

আপনার সাইটে মিশ্র কন্টেন্টের রিপোর্ট সংগ্রহ করতে আপনি কন্টেন্ট সিকিউরিটি পলিসি ব্যবহার করতে পারেন। এই ফিচারটি চালু করতে, আপনার সাইটের রেসপন্স হেডার হিসেবে Content-Security-Policy-Report-Only ডিরেক্টিভটি যোগ করে সেট করুন।

প্রতিক্রিয়া হেডার:

Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint

যখনই কোনো ব্যবহারকারী আপনার সাইটের কোনো পৃষ্ঠা ভিজিট করেন, তাদের ব্রাউজার কন্টেন্ট নিরাপত্তা নীতি লঙ্ঘনকারী যেকোনো বিষয়ে JSON-ফরম্যাটের রিপোর্ট https://example.com/reportingEndpoint এ পাঠায়। এক্ষেত্রে, যখনই HTTP-এর মাধ্যমে কোনো সাবরিসোর্স লোড হয়, একটি রিপোর্ট পাঠানো হয়। এই রিপোর্টগুলোতে সেই পৃষ্ঠার URL এবং নীতি লঙ্ঘনকারী সাবরিসোর্সের URL অন্তর্ভুক্ত থাকে। আপনি যদি এই রিপোর্টগুলো লগ করার জন্য আপনার রিপোর্টিং এন্ডপয়েন্ট কনফিগার করেন, তাহলে প্রতিটি পৃষ্ঠা নিজে ভিজিট না করেই আপনার সাইটের মিক্সড কন্টেন্ট ট্র্যাক করতে পারবেন।

এর দুটি সীমাবদ্ধতা হলো:

  • ব্যবহারকারীদের এমন একটি ব্রাউজারে আপনার পৃষ্ঠাটি দেখতে হবে যা CSP হেডার বুঝতে পারে। বেশিরভাগ আধুনিক ব্রাউজারের ক্ষেত্রেই এটি প্রযোজ্য।
  • আপনি শুধুমাত্র আপনার ব্যবহারকারীদের ভিজিট করা পেজগুলোর রিপোর্টই পাবেন। তাই আপনার যদি এমন পেজ থাকে যেগুলোতে তেমন ট্র্যাফিক আসে না, তাহলে আপনার পুরো সাইটের রিপোর্ট পেতে কিছুটা সময় লাগতে পারে।

কন্টেন্ট নিরাপত্তা নীতি নির্দেশিকাতে আরও তথ্য এবং একটি উদাহরণ এন্ডপয়েন্ট রয়েছে।

CSP-এর সাথে রিপোর্ট করার বিকল্পগুলি

যদি আপনার সাইটটি ব্লগার-এর মতো কোনো প্ল্যাটফর্ম দ্বারা হোস্ট করা হয়, তাহলে আপনি হেডার পরিবর্তন করা এবং CSP যোগ করার সুযোগ নাও পেতে পারেন। এর পরিবর্তে, একটি কার্যকর বিকল্প হতে পারে HTTPSChecker বা Mixed Content Scan-এর মতো কোনো ওয়েবসাইট ক্রলার ব্যবহার করে আপনার সাইট জুড়ে সমস্যাগুলো খুঁজে বের করা।

অনিরাপদ অনুরোধগুলি আপগ্রেড করা

Browser Support

  • ক্রোম: ৪৪।
  • প্রান্ত: ১৭।
  • ফায়ারফক্স: ৪৮।
  • সাফারি: ১০.১।

Source

ব্রাউজারগুলো আপগ্রেড হতে এবং অনিরাপদ অনুরোধ ব্লক করতে শুরু করেছে। আপনি CSP নির্দেশাবলী ব্যবহার করে এই অ্যাসেটগুলোর স্বয়ংক্রিয় আপগ্রেড বা ব্লক করা বাধ্যতামূলক করতে পারেন।

upgrade-insecure-requests CSP নির্দেশিকাটি ব্রাউজারকে নেটওয়ার্ক অনুরোধ করার আগে অসুরক্ষিত URL-গুলিকে আপগ্রেড করার নির্দেশ দেয়।

উদাহরণস্বরূপ, যদি কোনো পৃষ্ঠায় <img src="https://example.com/image.jpg"> এর মতো একটি HTTP URL সহ একটি ইমেজ ট্যাগ থাকে

এর পরিবর্তে ব্রাউজারটি https://example.com/image.jpg -এর জন্য একটি সুরক্ষিত অনুরোধ পাঠায়, যার ফলে ব্যবহারকারী মিশ্র কন্টেন্টের সমস্যা থেকে রক্ষা পান।

আপনি এই নির্দেশিকা সহ একটি Content-Security-Policy হেডার পাঠিয়ে এই আচরণটি সক্রিয় করতে পারেন:

Content-Security-Policy: upgrade-insecure-requests

অথবা ডকুমেন্টের <head> সেকশনে একটি <meta> এলিমেন্ট ব্যবহার করে সেই একই নির্দেশিকাটি ইনলাইনভাবে যুক্ত করার মাধ্যমে:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

ব্রাউজারের স্বয়ংক্রিয় আপগ্রেডিংয়ের মতোই, যদি রিসোর্সটি HTTPS-এর মাধ্যমে উপলব্ধ না থাকে, তাহলে আপগ্রেড করার অনুরোধটি ব্যর্থ হয় এবং রিসোর্সটি লোড হয় না। এটি আপনার পেজের নিরাপত্তা বজায় রাখে। ` upgrade-insecure-requests ডিরেক্টিভটি ব্রাউজারের স্বয়ংক্রিয় আপগ্রেডিংয়ের চেয়েও এক ধাপ এগিয়ে যায় এবং ব্রাউজার বর্তমানে যেসব অনুরোধ আপগ্রেড করে না, সেগুলোও আপগ্রেড করার চেষ্টা করে।

upgrade-insecure-requests নির্দেশিকাটি <iframe> ডকুমেন্টগুলিতেও কার্যকর হয়, যা সম্পূর্ণ পৃষ্ঠাটির সুরক্ষা নিশ্চিত করে।