Defaults.Exposed › সমাধান › HSTS (Strict-Transport-Security)
HSTS (Strict-Transport-Security) ঠিক করার উপায়
HSTS হলো একটি এক-লাইনের নির্দেশ যা আপনার ওয়েবসাইট প্রতিটি ব্রাউজারকে দেয়: 'সর্বদা নিরাপদ, এনক্রিপ্টেড সংযোগের মাধ্যমে আমার কাছে ফিরে আসুন — কখনো অনিরাপদটির মাধ্যমে নয়।' এটি ছাড়া, আপনার প্যাডলক শেয়ারড WiFi-তে চুপচাপ ছিনিয়ে নেওয়া যেতে পারে, এবং আপনার সাইটে প্রথম ভিজিটটি উন্মুক্ত।
আপনার ব্যবসার জন্য মূল বিষয়: HTTPS (প্যাডলক) থাকা এটি প্রয়োগ করার মতো একই নয়। HSTS ছাড়া, আপনার গ্রাহকের মতো একই WiFi-তে একজন আক্রমণকারী সংযোগ সরল, অনেক্রিপ্টেড HTTP-তে নীরবে ডাউনগ্রেড করতে পারে — লগইন, কার্ডের বিবরণ এবং ফর্ম ডেটা ক্যাপচার করে যখন গ্রাহক কিছু ভুল দেখে না। ঠিক করা বিনামূল্যে এবং যিনি আপনার সাইট চালান তার প্রায় ১৫ মিনিট লাগে।
এটি আপনার কতটা খরচ করতে পারে
- ক্যাফে, হোটেল, বিমানবন্দর বা কনফারেন্স WiFi-তে গ্রাহকরা আপনার সাইটে তাদের সংযোগ নীরবে ডাউনগ্রেড করতে পারে এবং তাদের ডেটা পড়া যেতে পারে — তাদের স্ক্রিনে কোনো সতর্কতা নেই।
- আপনি HTTPS-এর জন্য অর্থ দিয়েছেন এবং প্যাডলক আছে, কিন্তু HSTS ছাড়া আক্রমণকারীরা কেবল এটির চারপাশে রুট করতে পারে।
- আপনার সাইটে প্রথম ভিজিটটি (HTTPS-এ যেকোনো রিডাইরেক্টের আগে) হলো দুর্বল বিন্দু আক্রমণকারীরা লক্ষ্য করে।
- একটি নিরাপত্তা প্রশ্নপত্র, সাইবার-বীমা ফর্ম বা এন্টারপ্রাইজ ক্রেতার চেকলিস্ট 'কোনো HSTS নেই' ফ্ল্যাগ করে এবং চুক্তি থামিয়ে দেয়।
- মান ভুলভাবে সেট করলে (খুব সংক্ষিপ্ত) আপনি উভয়ের সবচেয়ে খারাপ পরিস্থিতি পান: এটি কনফিগার দেখায় কিন্তু প্রায় কোনো বাস্তব সুরক্ষা প্রদান করে না।
কেন এটি গুরুত্বপূর্ণ। HTTPS একটি সংযোগ এনক্রিপ্টেড হলে রক্ষা করে — কিন্তু এটি ব্রাউজারকে এটি ব্যবহার করতে বাধ্য করে না। আক্রমণকারীরা 'SSL স্ট্রিপিং' দিয়ে সেই ফাঁক কাজে লাগায়। HSTS ব্রাউজারকে আপনার ডোমেইনের জন্য সম্পূর্ণভাবে প্লেইন HTTP প্রত্যাখ্যান করতে বলে।
ধাপে ধাপে কীভাবে ঠিক করবেন
- প্রথমে বৈধ HTTPS পরিবেশন করুন. HSTS কেবল তখন অর্থবহ যখন আপনার সাইট একটি বৈধ সার্টিফিকেট সহ HTTPS-এর উপর সঠিকভাবে লোড হয়।
- হেডার যোগ করুন. HTTPS প্রতিক্রিয়ায় Strict-Transport-Security: max-age=31536000; includeSubDomains পাঠান।
- একটি সংক্ষিপ্ত max-age দিয়ে শুরু করুন. অনিশ্চিত হলে, একটি ছোট max-age দিয়ে শুরু করুন, নিশ্চিত করুন সাবডোমেইনগুলি এখনো কাজ করে, তারপর এক বছরে উঠান।
- preload বিবেচনা করুন. includeSubDomains সহ স্থিতিশীল হলে, preload যোগ করুন এবং ব্রাউজার preload তালিকায় জমা দিন।
- এটি কাজ করেছে কিনা যাচাই করুন. HTTPS প্রতিক্রিয়ায় হেডার উপস্থিত তা নিশ্চিত করতে পুনরায় পরীক্ষা করুন।
সহজ ভাষায় এটি কী
আপনার প্রায় নিশ্চিতভাবে HTTPS আছে — ব্রাউজার বারে ছোট প্যাডলক। কিন্তু এখানে প্রায় কাউকে বলা হয় না এমন অংশটি: HTTPS থাকা এটি বাধ্য করার মতো একই নয়।
HSTS — সংক্ষিপ্ত HTTP Strict Transport Security — হলো নির্দেশ যা ব্রাউজারকে সর্বদা এটি ব্যবহার করতে বলে। এটি আপনার ওয়েবসাইট প্রতিটি দর্শনার্থীকে পাঠানো একটি একক, অদৃশ্য লাইন:
“এখন থেকে, আমার ডোমেইনের জন্য, শুধুমাত্র আমার সাথে নিরাপদ সংযোগের মাধ্যমে কথা বলুন। কখনো অনিরাপদটি নয়।“
কীভাবে ঠিক করবেন (বিনামূল্যে, ~১৫ মিনিট)
এই বিভাগটি যিনি আপনার ওয়েবসাইট চালান তাকে হস্তান্তর করুন — আপনার IT ব্যক্তি, ওয়েব ডেভেলপার বা হোস্টিং সাপোর্ট। ঠিক করা বিনামূল্যে।
একটি গুরুত্বপূর্ণ অর্ডারিং নিয়ম: HSTS আঠালো — একবার সক্ষম হলে, ব্রাউজারগুলি আপনার ডোমেইনের জন্য সম্পূর্ণ max-age-এর জন্য প্লেইন HTTP প্রত্যাখ্যান করবে। তাই ছোট মান দিয়ে পরীক্ষা → নিশ্চিত করুন কিছু ভাঙেনি → এক বছরে উঠান।
Cloudflare: SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) → সক্ষম করুন। Max-Age ৬ মাস বা ১২ মাসে সেট করুন।
Nginx: আপনার HTTPS server ব্লকের ভেতরে যোগ করুন:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Microsoft IIS: web.config-এ <customHeaders>-এর ভেতরে:
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
সাধারণ ভুল
max-ageখুব সংক্ষিপ্ত সেট করা। কয়েক মিনিট বা ঘণ্টার মান কনফিগার দেখায় কিন্তু প্রায় কোনো সুরক্ষা প্রদান করে না।includeSubDomainsচালু করা আগে সাবডোমেইন HTTPS-প্রস্তুত।- HSTS যোগ করা কিন্তু কোনো HTTP-থেকে-HTTPS রিডাইরেক্ট না থাকা।
- “পুঙ্খানুপুঙ্খ হতে” সরাসরি
preload-এ ঝাঁপ দেওয়া। Preload পূর্বাবস্থায় ফেরানো কঠিন। - প্যাডলক মানে আপনি সুরক্ষিত ধরে নেওয়া।
FAQ
আমাদের ইতিমধ্যে HTTPS এবং প্যাডলক দেখায়। এটি কি যথেষ্ট নয়?
না — এটি একক সবচেয়ে সাধারণ ভুল বোঝাবুঝি। প্যাডলক মানে একটি সংযোগ এনক্রিপ্টেড হতে পারে; এটি ব্রাউজারকে এনক্রিপ্টেড সংস্করণ ব্যবহার করতে বাধ্য করে না। HTTPS HSTS ছাড়া একটি লক করা দরজা যা আসলে ল্যাচড নয়।
এটি চালু করা কি ব্যয়বহুল বা ঝুঁকিপূর্ণ?
ঠিক করা নিজেই বিনামূল্যে — এটি আপনার ওয়েব সার্ভার বা আপনার CDN-এ একটি লাইন। একটি বাস্তব সতর্কতা: HSTS আঠালো। একবার ব্রাউজার এটি দেখলে, এটি আপনি যতটা নির্দিষ্ট করেছেন সেই দীর্ঘ সময়ের জন্য আপনার ডোমেইনের জন্য প্লেইন HTTP প্রত্যাখ্যান করবে।
'ভালো' আসলে কেমন দেখায়?
কমপক্ষে এক বছরের একটি max-age (৩১৫৩৬০০০ সেকেন্ড)। সবচেয়ে শক্তিশালী সেটআপে includeSubDomains এবং preload-ও যোগ হয়।
'preload' কী এবং আমাদের কি এটি দরকার?
HSTS কেবল একজন দর্শনার্থীর ব্রাউজার অন্তত একবার হেডার দেখার পরে রক্ষা করে। HSTS preload তালিকা ব্রাউজারে আগে থেকেই আপনার ডোমেইন পাঠিয়ে সেই উইন্ডো বন্ধ করে।
আমরা Squarespace / Wix / Shopify-তে আছি — আমাদের কি কিছু করতে হবে?
বেশিরভাগ সম্পূর্ণ-হোস্টেড ওয়েবসাইট বিল্ডার HTTPS প্রয়োগ করে এবং প্রায়ই আপনার জন্য স্বয়ংক্রিয়ভাবে HSTS সেট করে — তাই আপনি ইতিমধ্যে পাস করতে পারেন কিছু না করে।
আমরা এটি ঠিক না করলে, এটি কি আমাদের গ্রেড কমাবে?
হ্যাঁ। HSTS একটি স্কোর করা ওয়েব-সিকিউরিটি চেক — একটি অনুপস্থিত বা খুব-সংক্ষিপ্ত হেডার পয়েন্ট খরচ করে।