Defaults.Exposed › সমাধান › Content-Security-Policy (CSP)
Content-Security-Policy (CSP) ঠিক করার উপায়
একটি Content Security Policy হলো একটি নিরাপত্তা নিয়ম যা আপনার ওয়েবসাইট প্রতিটি দর্শনার্থীর ব্রাউজারকে দেয়, এটিকে ঠিক কোন কোড চালানোর অনুমতি আছে তা বলে। এটি ছাড়া, যদি কোনো দুর্ভাগ্যজনক জিনিস একটি পৃষ্ঠায় পড়ে — একটি মন্তব্য বাক্স, একটি হ্যাক করা প্লাগইন, বা একটি তৃতীয়-পক্ষ স্ক্রিপ্টের মাধ্যমে — ব্রাউজার এটি অবাধে চালাবে, যেমন কোড যা চুপচাপ আপনার গ্রাহকদের কার্ড নম্বর এবং পাসওয়ার্ড টাইপ করার সাথে সাথে স্কিম করে, প্যাডলক এখনো দেখাতে থাকে।
আপনার ব্যবসার জন্য মূল বিষয়: আপনার সাইটে যদি কখনো টেম্পার করা হয়, দুর্ভাগ্যজনক কোড আপনার নিজের চেকআউটে আপনার গ্রাহকদের পেমেন্ট-কার্ড এবং লগইন বিবরণ পড়তে পারে যখন সবকিছু সম্পূর্ণ স্বাভাবিক দেখায় — আপনাকে চার্জব্যাক, জালিয়াতি দাবি, একটি রিপোর্টযোগ্য ডেটা লঙ্ঘন, এবং একটি চেক ব্যর্থতা দেখায় যা বড় ক্লায়েন্টদের নিরাপত্তা দল একটি চুক্তি থামাতে বা মেরে ফেলতে ব্যবহার করে।
এটি আপনার কতটা খরচ করতে পারে
- লুকানো কোড আপনার একটি পৃষ্ঠায় স্লিপ করে এবং নীরবে আপনার গ্রাহকরা চেকআউটে প্রবেশ করা প্রতিটি কার্ড নম্বর এবং পাসওয়ার্ড কপি করে, আক্রমণকারীর কাছে পাঠায় যখন আপনার সাইট সম্পূর্ণ স্বাভাবিক দেখায়।
- একজন স্ক্যামার আপনার বাস্তব ওয়েবসাইটে একটি নকল 'এখানে পেমেন্ট করুন' ফর্ম লাগায় যা তাদের নিজস্ব অ্যাকাউন্টে পেমেন্ট ক্যাপচার করে।
- একটি বড় ক্লায়েন্টের নিরাপত্তা দল আপনার সাইট স্ক্যান করে, এই মৌলিক সুরক্ষা বন্ধ দেখে, এবং এটি ফ্লাগ করে।
- একটি লঙ্ঘন একটি আদর্শ প্রতিরক্ষা না থাকায় ফিরিয়ে ট্রেস করা একটি রিপোর্টযোগ্য ঘটনা হয়ে ওঠে।
কেন এটি গুরুত্বপূর্ণ। প্যাডলক প্রমাণ করে আপনার সাইটের সংযোগ ব্যক্তিগত, কিন্তু একজন দর্শনার্থী পৃষ্ঠায় থাকলে কোন কোড চলে তা নিয়ন্ত্রণ করতে কিছু করে না। একটি Content Security Policy হলো সেই সুরক্ষা যা করে — এটি ব্রাউজারকে যেকোনো স্ক্রিপ্ট উপেক্ষা করতে বলে যা আপনার বিশ্বাসযোগ্য উৎস থেকে আসেনি, তাই একটি একক টেম্পার করা ক্ষেত্র, বিজ্ঞাপন বা প্লাগইন আপনার গ্রাহকদের অর্থ এবং ডেটা চুরি করার একটি হাতিয়ারে পরিণত হতে পারে না।
সহজ ভাষায় এটি কী
যখন কেউ আপনার ওয়েবসাইট পরিদর্শন করে, তাদের ব্রাউজার আপনার পৃষ্ঠা ডাউনলোড করে এবং এতে যা কোড আছে তা চালায় — মেনু ড্রপ ডাউন করার, বোতাম কাজ করার, পেমেন্ট ফর্ম সাবমিট করার স্ক্রিপ্ট। ডিফল্টরূপে, ব্রাউজার এর সবকিছু বিশ্বাস করে।
একটি Content Security Policy (প্রায়ই সংক্ষেপে CSP) হলো আপনার ওয়েবসাইট প্রতিটি পৃষ্ঠায় সংযুক্ত নিয়মের একটি ছোট তালিকা, ব্রাউজারকে বলে: “শুধুমাত্র এই উৎসগুলি থেকে কোড চালাও যা আমি অনুমোদন করেছি, এবং বাকি সবকিছু প্রত্যাখ্যান করো।“
এটি আপনার কী খরচ করতে পারে
-
অদৃশ্য চেকআউট স্কিমার। একটি দুর্বল প্লাগইন বা একটি আপোষকৃত তৃতীয়-পক্ষ স্ক্রিপ্টের মাধ্যমে একজন আক্রমণকারী আপনার চেকআউট পৃষ্ঠায় কোডের কয়েকটি লাইন স্লিপ করে। আপনার গ্রাহকরা যে প্রতিটি কার্ড নম্বর, নাম এবং CVV টাইপ করে তা বাস্তব সময়ে আক্রমণকারীর কাছে কপি এবং পাঠানো হয়।
-
নকল পেমেন্ট ফর্ম। একজন স্ক্যামার আপনার বাস্তব ওয়েবসাইটে একটি বিশ্বাসযোগ্য “এখানে পেমেন্ট করুন” বাক্স ইনজেক্ট করে।
-
হারানো চুক্তি। একটি বড় সম্ভাব্য গ্রাহকের নিরাপত্তা দল ভেন্ডর যথাযথ পরিশ্রমের অংশ হিসেবে আপনার সাইটের একটি স্বয়ংক্রিয় স্ক্যান চালায়।
-
রিপোর্টযোগ্য লঙ্ঘন। যখন একটি ডেটা লঙ্ঘন একটি হারানো, আদর্শ, বিনামূল্যের সুরক্ষার দিকে ফিরে ট্রেস করা হয়, এটি খারাপ ভাগ্য হওয়া বন্ধ করে এবং অবহেলা দেখাতে শুরু করে।
-
আপোষকৃত বিজ্ঞাপন বা উইজেট। অনেক সাইট বাইরের পক্ষ থেকে কোড লোড করে। একটি Content Security Policy বিস্ফোরণ ব্যাসার্ধ সীমিত করে শুধুমাত্র আপনি বিশ্বাস করেন এমন নির্দিষ্ট বাইরের উৎসগুলি অনুমতি দিয়ে।
এটি আসলে কী (বিবরণ)
একটি Content Security Policy একটি একক HTTP প্রতিক্রিয়া হেডার হিসেবে ডেলিভারি করা হয়। উদাহরণস্বরূপ:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self'
‘ভালো’ দেখতে কেমন। একটি শক্তিশালী পলিসি:
- একটি সীমাবদ্ধ বেসলাইন সেট করে (
default-src 'self') এবং শুধুমাত্র নির্দিষ্ট বিশ্বস্ত তৃতীয় পক্ষের জন্য প্রশস্ত করে। - লুপহোল এড়ায়। এটি স্ক্রিপ্টের জন্য
'unsafe-inline'বা'unsafe-eval'ব্যবহার করে না, এবং স্ক্রিপ্টের জন্য ওয়াইল্ডকার্ড বা bare scheme উৎস ব্যবহার করে না। frame-ancestors 'self'দিয়ে framing লক ডাউন করে এবংobject-src 'none'দিয়ে উত্তরাধিকার প্লাগইন অক্ষম করে।- এনফোর্সিং, report-only নয়।
কীভাবে ঠিক করবেন (বিনামূল্যে, ~১–২ ঘণ্টা)
আপনার IT ব্যক্তি বা ওয়েবসাইট পরিচালনাকারীকে এটি দিন — ঠিক করা নিজেই সম্পূর্ণ বিনামূল্যে।
-
Report-only মোডে শুরু করুন — এখনই এনফোর্স করবেন না। একটি
Content-Security-Policy-Report-Onlyরেসপন্স হেডার যোগ করুন। -
আপনার সাইট আসলে কী ব্যবহার করে তা থেকে পলিসি তৈরি করুন।
-
সম্পূর্ণ বিষয়টি পরাজিত করে এমন লুপহোল এড়িয়ে চলুন। স্ক্রিপ্টের জন্য
'unsafe-inline'এবং'unsafe-eval'থেকে দূরে থাকুন। -
Framing এবং প্লাগইন লক ডাউন করুন।
frame-ancestors 'self'এবংobject-src 'none'যোগ করুন। -
Report-only থেকে এনফোর্সিং-এ পরিবর্তন করুন। হেডারের নাম
Content-Security-Policy-Report-OnlyথেকেContent-Security-Policy-এ পরিবর্তন করুন।হেডার কোথায় সেট করবেন:
- Cloudflare: Rules → Transform Rules → Modify Response Header
- Nginx:
add_header Content-Security-Policy "..."; - Apache:
Header always set Content-Security-Policy "..." - IIS (web.config): একটি কাস্টম HTTP রেসপন্স হেডার যোগ করুন
-
আপনার ডোমেইন পুনরায় পরীক্ষা করুন।
সাধারণ ভুল
- Report-only-তে থামা।
- এটি “শুধু কাজ করানোর” জন্য
'unsafe-inline'-এর দিকে পৌঁছানো। - ওয়াইল্ডকার্ড ব্যবহার করা।
- তৃতীয়-পক্ষ উৎস ভুলে যাওয়া।
- শুধুমাত্র হোমপেজে সেট করা।
- প্যাডলকের প্রতিস্থাপন হিসেবে বিবেচনা করা।
FAQ
আমি প্রযুক্তিগত নই — আমি কি এটি নিজে সামলাতে পারি?
আপনাকে বিবরণ বুঝতে হবে না। এটি আপনার ওয়েবসাইট বা হোস্টিং পরিচালনাকারীর দ্বারা যোগ করা একটি সেটিং, এবং Cloudflare-এর মতো পরিষেবায় এটি মূলত গাইড করা। তাদের নিচের 'কীভাবে ঠিক করবেন' বিভাগটি হস্তান্তর করুন।
আমার ইতিমধ্যে প্যাডলক এবং একটি SSL সার্টিফিকেট আছে — আমার সাইট কি নিরাপদ নয়?
প্যাডলক আপনার পৃষ্ঠার ডেলিভারি সুরক্ষিত করে; এটি তার ভেতরে কী চলে তা নিয়ন্ত্রণ করে না। একটি Content Security Policy হলো সেই স্তর যা প্রথম স্থানে কী চালানোর অনুমতি তা সীমিত করে।
এটি চালু করা কি আমার সাইট ভাঙতে পারে?
এটি পারে যদি একবারে আক্রমণাত্মকভাবে চালু করা হয়। সেই কারণে আদর্শ পদ্ধতি হলো একটি 'report-only' ট্রায়াল মোডে শুরু করা যা ব্লক না করে পর্যবেক্ষণ করে।
আমরা এটি 'report-only' মোডে রেখেছি — আমরা কি কভার?
না, এবং এটি সবচেয়ে সাধারণ মিথ্যা নিরাপত্তা অনুভূতি। Report-only মোড পর্যবেক্ষণ করে এবং লগ করে কী ব্লক হবে, কিন্তু কিছু ব্লক করে না — দর্শনার্থীরা শূন্য বাস্তব সুরক্ষা পায়।
এটি কি আমাদের স্কোর প্রভাবিত করে, নাকি এটি শুধু পরামর্শমূলক?
এটি আপনার স্কোর প্রভাবিত করে। Content Security Policy চেক গ্রেডযুক্ত এবং Web Security বিভাগে ২৫ পয়েন্ট পর্যন্ত মূল্যের।
আমাদের ডেভেলপার একটি পলিসি যোগ করেছে কিন্তু স্কোর এখনো কম — কেন?
একটি পলিসি বিদ্যমান থাকতে পারে এবং এখনো দুর্বল হতে পারে। সবচেয়ে সাধারণ অপরাধীরা হলো 'unsafe-inline' এবং 'unsafe-eval' এর মতো লুপহোল।