Security header checklist: HSTS, CSP, frame সুরক্ষা ও আরও
কয়েকটি response header পুরো এক শ্রেণির আক্রমণ বন্ধ করে। সেট করার সংক্ষিপ্ত তালিকা, প্রতিটির কাজ ও পরীক্ষার উপায় দেখুন।

HTTP security header browser-কে আপনার পেজে বাড়তি সুরক্ষা প্রয়োগ করতে বলে। খরচ কম, আর অনেক সাধারণ আক্রমণ আটকায়। এগুলো আপনার web server, CDN বা অ্যাপে সেট করুন।
অপরিহার্য header
১. Strict-Transport-Security (HSTS)। Browser-কে একটি সময় পর্যন্ত আপনার সাইটে শুধু HTTPS ব্যবহার করতে বলে।
Strict-Transport-Security: max-age=31536000; includeSubDomains
ছোট max-age দিয়ে শুরু করুন, সব subdomain-এ HTTPS ঠিক আছে কি না দেখুন, তারপর বাড়ান। preload শুধু নিশ্চিত হলে দিন, কারণ ফেরানো কঠিন।
২. Content-Security-Policy (CSP)। Script, style, ছবি ও frame কোথা থেকে লোড হবে তা সীমিত করে এবং inline script আটকাতে পারে। XSS-এর বিরুদ্ধে সবচেয়ে শক্ত প্রতিরক্ষা। আগে Content-Security-Policy-Report-Only দিয়ে চালু করুন, report ঠিক করুন, তারপর enforce করুন। nonce-ভিত্তিক script পছন্দ করুন।
৩. X-Content-Type-Options: nosniff। Browser-কে ফাইলের ধরন আন্দাজ করতে দেয় না, যা কিছু content-sniffing আক্রমণ ঠেকায়, বিশেষত upload-এ।
৪. Clickjacking সুরক্ষা: frame-ancestors। Clickjacking আপনার পেজকে অন্য সাইটে অদৃশ্য frame-এ লুকিয়ে ক্লিক ভোলায়।
Content-Security-Policy: frame-ancestors 'self'
পুরোনো X-Frame-Options: DENY (বা SAMEORIGIN) একই কাজ করে এবং fallback হিসেবে এখনও ব্যাপক ব্যবহৃত।
৫. Referrer-Policy। অন্য সাইটে URL-এর কতটা পাঠানো হবে তা নিয়ন্ত্রণ করে। ভালো ডিফল্ট: strict-origin-when-cross-origin।
৬. Permissions-Policy। যে browser feature ব্যবহার করেন না তা বন্ধ করে (camera, microphone, geolocation)। যেমন: camera=(), microphone=(), geolocation=()।
৭. Cross-origin isolation header (Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy, Cross-Origin-Embedder-Policy)। আপনার পেজকে অন্য origin থেকে আলাদা রাখতে কাজের; সাইট cross-origin popup বা embed-এর ওপর নির্ভর না করলে সেট করুন, আর সাবধানে পরীক্ষা করুন।
Cookie-তেও flag লাগে
Secure: শুধু HTTPS-এ পাঠানো।HttpOnly: JavaScript থেকে লুকানো।SameSite=Lax(বাStrict): cross-site পাঠানো সীমিত (CSRF-এ সাহায্য)।- session cookie-তে
__Host-prefix ভাবুন।
যে header সরাবেন
বিস্তারিত server ও framework সংস্করণের header (Server, X-Powered-By) লুকান। এটি নিজে প্রতিরক্ষা নয়, তবে তথ্য ফাঁস এড়ায়।
কীভাবে পরীক্ষা করবেন
- Browser developer tools-এর Network ট্যাবে response header দেখুন।
curl -I https://yoursiteব্যবহার করুন।- Mozilla Observatory বা securityheaders.com-এর মতো অনলাইন scanner চালান।
- বদলের পর সমস্যা ধরতে CSP report দেখুন।
কোথায় সেট করবেন
সব response-এর জন্য CDN বা reverse proxy-তে (Nginx, Cloudflare rule), অথবা অ্যাপের middleware-এ। static ফাইল ও error পেজের কথাও মনে রাখুন।
মূল কথা: HSTS, Content Security Policy, nosniff, frame-ancestors, Referrer-Policy ও নিরাপদ cookie flag সেট করুন, তারপর scanner দিয়ে পরীক্ষা করুন।
ওয়েব সিকিউরিটি সিরিজ, পর্ব ২ (আরও bug শ্রেণি ও hardening): 6 নম্বর (মোট 6)। আগের লেখা: XXE: XML external entity আক্রমণ ও বন্ধ করার উপায়.
