Defaults.Exposed › সমাধান › ক্লিকজ্যাকিং সুরক্ষা (X-Frame-Options)
ক্লিকজ্যাকিং সুরক্ষা (X-Frame-Options) ঠিক করার উপায়
একটি এক-লাইনের নির্দেশ যা ব্রাউজারকে অন্য ওয়েবসাইটগুলিকে আপনার সাইট তাদের নিজস্বের ভেতরে গোপনে লোড করতে না দেওয়ার নির্দেশ দেয়। এটি ছাড়া, একজন স্ক্যামার আপনার বাস্তব, লগ-ইন পৃষ্ঠাগুলি একটি নকল পৃষ্ঠার পেছনে লুকিয়ে আপনার গ্রাহকদের এমন জিনিসে ক্লিক করতে প্রতারিত করতে পারে যা তারা কখনো বোঝেনি — একটি পেমেন্ট অনুমোদন করা, একটি পাসওয়ার্ড পরিবর্তন করা, অ্যাক্সেস মঞ্জুর করা।
আপনার ব্যবসার জন্য মূল বিষয়: একজন প্রতারক আপনার লাইভ ওয়েবসাইট একটি নকলের ভেতরে অদৃশ্যভাবে মুড়ে আপনার লগ-ইন গ্রাহকদের থেকে অর্থ বা অ্যাকাউন্ট অ্যাক্সেস চুরি করতে পারে — এবং গ্রাহকের কাছে মনে হয় আপনার সাইট এটি করেছে। ঠিক করা বিনামূল্যে এবং একজন ডেভেলপারের প্রায় ১৫ মিনিট লাগে; এটি বন্ধ রাখা একটি পরিচিত ফাঁক যা অপরাধী এবং সতর্ক ক্রেতা উভয়ই সেকেন্ডে স্পট করতে পারে।
এটি আপনার কতটা খরচ করতে পারে
- একজন স্ক্যামার আপনার বাস্তব লগইন বা পেমেন্ট স্ক্রিন একটি নিরীহ-দেখানো পৃষ্ঠার পেছনে লুকিয়ে রাখে এবং একজন গ্রাহককে বুঝতে না পেরে একটি ট্রান্সফার বা সেটিং পরিবর্তন 'নিশ্চিত' করতে প্রতারিত করে।
- আপনার লগ-ইন অ্যাকাউন্ট এলাকা একটি 'আপনি জিতেছেন — দাবি করতে ক্লিক করুন' পৃষ্ঠার উপরে অদৃশ্যভাবে লোড হয়।
- একজন সম্ভাব্য গ্রাহকের IT দল স্বাক্ষর করার আগে একটি দ্রুত নিরাপত্তা স্ক্যান চালায়, দেখে আপনার সাইট যে কেউ এম্বেড করতে পারে।
- আপনার ব্র্যান্ড একটি জালিয়াতি প্রচারণায় টোপ হয়ে ওঠে।
- একজন অডিটর বা সাইবার-বীমা স্ক্যান হারানো ক্লিকজ্যাকিং সুরক্ষাকে একটি মৌলিক-স্বাস্থ্যবিধি ব্যর্থতা হিসেবে তালিকাভুক্ত করে।
কেন এটি গুরুত্বপূর্ণ। এটি একটি বিনামূল্যে, এক-লাইনের সেটিং যা যোগ করতে মিনিট লাগে, এবং এটি আপনার লগ-ইন গ্রাহকদের লক্ষ্য করা চালাকির একটি সম্পূর্ণ শ্রেণী বন্ধ করে দেয়।
সহজ ভাষায় এটি কী
যখন কেউ আপনার ওয়েবসাইট পরিদর্শন করে, তাদের ব্রাউজারকে আপনার সাইট অন্য একটি ওয়েবসাইটের ভেতরে লোড করার নির্দেশও দেওয়া যেতে পারে — একটি বড় পৃষ্ঠার ভেতরে এম্বেড করা একটি ছোট উইন্ডোর মতো। এটি নিরীহ শোনায়, এবং মাঝে মাঝে এটি। কিন্তু এটি ক্লিকজ্যাকিং নামে একটি আক্রমণের প্রক্রিয়া।
চালাকি এই: একজন স্ক্যামার তাদের নিজস্ব পৃষ্ঠা তৈরি করে এবং আপনার বাস্তব ওয়েবসাইট চুপচাপ এর ভেতরে লোড করে — অদৃশ্যভাবে, সম্পূর্ণ স্বচ্ছ করা হয়েছে। তারপর তারা নিজেদের বিষয়বস্তু উপরে রাখে: একটি চমকপ্রদ বোতাম। আপনার গ্রাহক আক্রমণকারীর পৃষ্ঠা দেখেন এবং একটি নিরীহ বোতামে মনে হয় ক্লিক করেন। কিন্তু কারণ আপনার বাস্তব সাইট তাদের কার্সারের নিচে অদৃশ্যভাবে বসে আছে, ক্লিক আসলে আপনার পৃষ্ঠায় পড়ে — একটি পেমেন্ট নিশ্চিত করা, একটি পাসওয়ার্ড পরিবর্তন করা।
ক্লিকজ্যাকিং সুরক্ষা হলো একটি ছোট, অদৃশ্য নির্দেশ যা আপনার ওয়েবসাইট প্রতিটি দর্শনার্থীর ব্রাউজারে পাঠায়:
“অন্য ওয়েবসাইটগুলিকে আমাকে তাদের ভেতরে লোড করতে দিও না।“
এটি আসলে কী
যখন একটি ব্রাউজার আপনার ওয়েবসাইট থেকে একটি পৃষ্ঠা চায়, আপনার সার্ভার পৃষ্ঠার সাথে কিছু অদৃশ্য “হেডার” ফিরিয়ে দেয়। ক্লিকজ্যাকিং সুরক্ষা এই হেডারের মাধ্যমে ডেলিভারি করা হয়। দুটি আছে:
১. পুরানো হেডার — X-Frame-Options:
X-Frame-Options: SAMEORIGIN
২. আধুনিক হেডার — Content-Security-Policy frame-ancestors:
Content-Security-Policy: frame-ancestors 'self';
‘ভালো’ কেমন দেখায়
সবচেয়ে শক্তিশালী সেটআপ উভয় ব্যবহার করে।
কীভাবে ঠিক করবেন (বিনামূল্যে, ~১৫ মিনিট)
এই বিভাগটি আপনার ওয়েবসাইট পরিচালনাকারীকে হস্তান্তর করুন — ঠিক করা বিনামূল্যে।
ধাপ ১ — কতটা কঠোর হবেন তা সিদ্ধান্ত নিন
- বেশিরভাগ ব্যবসা:
SAMEORIGIN/frame-ancestors 'self'। - আপনার সাইট যদি কখনো নিজের পৃষ্ঠা এম্বেড না করে:
DENY/frame-ancestors 'none'।
ধাপ ২ — হেডার যোগ করুন (আপনার প্ল্যাটফর্ম বেছে নিন)
Nginx:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;
Apache:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"
Microsoft IIS — web.config-এ <customHeaders>-এ:
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
Cloudflare: Rules → Transform Rules → Modify Response Header।
ধাপ ৩ — পুনরায় লোড এবং যাচাই করুন
সাধারণ ভুল
- Report-only CSP ব্যবহার করা এবং ধরে নেওয়া এটি আপনাকে রক্ষা করে।
- দুটি আলাদা
Content-Security-Policyহেডার সেট করা। DENYসেট করা যখন আপনার নিজের সাইট নিজের পৃষ্ঠা এম্বেড করে।- শুধুমাত্র হোমপেজ সুরক্ষিত করা।
- HTTPS বা প্যাডলক ইতিমধ্যে এটি কভার করে ধরে নেওয়া।
- পুরানো সমাধানের উপর নির্ভর করা। “ফ্রেম-বাস্টিং” JavaScript অবিশ্বস্ত এবং বাইপাস করা যায়।
FAQ
আমি প্রযুক্তিগত নই — আমি কি এটি নিজে সামলাতে পারি?
আপনাকে প্রযুক্তিগত অংশ করতে হবে না। এটি আপনার ওয়েবসাইটের সার্ভার বা আপনার CDN-এ যোগ করা একটি একক সেটিং, এবং যেকোনো ওয়েব ডেভেলপার বা IT প্রদানকারী এটি কয়েক মিনিটে যোগ করতে পারে।
এটি কি আমার নিজের সাইট বা বৈধ অংশীদারদের আমার পৃষ্ঠা প্রদর্শন করা বন্ধ করবে?
শুধুমাত্র যদি আপনি এটি খুব কঠোরভাবে সেট করেন। সাধারণ সেটিং ('SAMEORIGIN', বা 'frame-ancestors self') আপনার নিজের ওয়েবসাইটকে এখনো তার নিজের পৃষ্ঠাগুলি স্বাভাবিকভাবে এম্বেড করতে দেয়।
আমরা একটি ছোট ব্যবসা — কেউ কি সত্যিই আমাদের টার্গেট করবে?
এই আক্রমণগুলি স্বয়ংক্রিয় টুল দ্বারা বাল্কে চালানো হয়, হাতে-বাছাই নয়। ছোট সাইটগুলি প্রায়ই এই ধরনের মৌলিক সুরক্ষা না থাকার কারণে আঘাত পায়।
'ভালো' আসলে কেমন দেখায়?
হয় SAMEORIGIN (বা DENY)-এ সেট একটি X-Frame-Options হেডার, বা একটি frame-ancestors ডিরেক্টিভ সহ Content-Security-Policy।
এটি কি SSL প্যাডলক বা HTTPS-এর মতো একই?
না — তারা সম্পূর্ণ আলাদা জিনিস রক্ষা করে।
আমরা যদি এটি ঠিক না করি, এটি কি আমাদের গ্রেড কমাবে?
হ্যাঁ। এটি একটি স্কোর করা ওয়েব-নিরাপত্তা চেক, তথ্যমূলক নয়।