কম্পিউটার টিউটোরিয়াল

ক্রস-সাইট স্ক্রিপ্টিং (XSS) ব্যাখ্যা: ওয়েব অ্যাপ্লিকেশনের জন্য প্রতিরোধ, সনাক্তকরণ ও সমাধান

ক্রস-সাইট স্ক্রিপ্টিং (XSS) আক্রমণ ই-কমার্স ব্যবসা ও বিভিন্ন ধরনের ওয়েব অ্যাপ্লিকেশনের মুখে সবচেয়ে ব্যাপক ঘটা কিন্তু সহজে ঠিক করা যাওয়া ইনজেকশন আক্রমণের একট হিসেবে বিবেচনা করা হয়। পুরনো ওয়েব টেকনোলজিতে বিল্ট অ্যাপ্লিকেশন থেকে নতুন, রিচ ক্লায়েন্ট-সাইড UI ব্যবহারকারী অ্যাপ্লিকেশন পর্যন্ত - XSS সবকে আক্রান্ত করেছে। তবে এটি বুঝতে হয় যে XSS আক্রমণের সম্ভাব্য কারণসমূহ সহজে সনাক্ত ও সময়মতো ফিক্স করা যায়।

ক্রস-সাইট স্ক্রিপ্টিং আক্রমণ কীভাবে ঘটে?

একটি ক্রস-সাইট স্ক্রিপ্টিং (XSS) আক্রমণ ঘটে যখন:

  1. একটি ওয়েব অ্যাপ্লিকেশন একটি নিরleqslant সোর্স থেকে ইনপুট ডেটা অনুরোধ করে
  2. ওয়েব রিকোয়েস্টের মাধ্যমে ইনপুট করা ডাইনামিক কন্টেন্ট দূষিত কন্টেন্টের অভাবের জন্য যাচাই ছাড়া ব্যবহার করা হয়।
ক্রস-সাইট স্ক্রিপ্টিং (XSS) ব্যাখ্যা: ওয়েব অ্যাপ্লিকেশনের জন্য প্রতিরোধ, সনাক্তকরণ ও সমাধান

একটি সহজ উদাহরণ হলো যখন আমরা ফর্মে আমাদের নাম, ইমেইল আইডি, ইউজারনেম-পাসওয়ার্ড বা যেকোনো ইনপুট সাবমিট করি। উপরের যেকোনো ইনপুট ম্যানিপুলেট করা যায় যদি অনর্লাইন কোড ইনপুটগুলো সঠিকভাবে ভ্যালিডেট না করে। আক্রমণকারী এই অক্ষমতাটি ব্যবহার করে দূষিত কন্টেন্ট ইনজেক্ট করে, সাধারণত যাভাস্ক্রিপ্ট কোড, HTML বা ব্রাউজার দ্বারা এক্সিকিউটেবল যেকোনো কোডের রূপে। এন্ড ইউজারের কোনো উপায় নেই নিরস্ত স্ক্রিপ্টটি সন্দেহ করার এবং সেটি এক্সিকিউট হয়ে যায়। একবার ইনজেক্ট হলে, স্ক্রিপ্টটি এই সাইট দ্বারা ব্যবহৃত যেকোনো কুকি, সেশন টোকেন বা সংবেদনশীল ইনফোর্মেশনে অ্যাক্সেস পায়।

XSS আক্রমণ ৩ টাইপের:

  1. ডোম-ভিত্তিক আক্রমণ (DOM Based Attack): ক্লায়েন্ট সাইড থেকে দূষিত কোড ইনজেকশনের ফলে হয়। ইনজেক্টেড কোড যাভাস্ক্রিপ্ট, ফ্ল্যাশ, ভিজুয়াল বেসিক ইত্যাদি হতে পারে।
  2. পারসিস্টেন্ট XSS আক্রমণ (Persistent XSS Attack): পেলোড সার্ভার সাইডে সংরক্ষিত হয়ে থাকে এবং ইউজার কোনো পেজের জন্য রিকোয়েস্ট করলে রিট্রিভ হয়।
  3. নন-পারসিস্টেন্ট XSS আক্রমণ (Non-Persistent XSS Attack): পেলোড ইউজারের কাছে রিফ্লেক্ট হয়ে যায় একটি ভার্নারেবল ওয়েবসাইটের লিংক খোলার মাধ্যমে ক্র্যাফটেড ইনপুট দিয়ে।
ক্রস-সাইট স্ক্রিপ্টিং (XSS) ব্যাখ্যা: ওয়েব অ্যাপ্লিকেশনের জন্য প্রতিরোধ, সনাক্তকরণ ও সমাধান

ক্রস-সাইট স্ক্রিপ্টিং (XSS) আক্রমণের অ্যানাটমি

আক্রমণকারীরা XSS কীভাবে শোষা করে?

সাধারণত একটি আক্রমণকারী XSS ভালনারেবিলিটি ব্যবহার করে এন্ড ইউজারের সেশন কুকি বের করে যা অবশেষে আক্রমণকারীকে ইউজারের একাউন্টে অ্যাক্সেস দেয়। উপরোক্ত পরিস্থিতির একটি উদাহরণ:

  • আপনি যে ওয়েবসাইট অ্যাক্সেস করছেন তার একটি কমেন্ট ফিল্ড আছে।
  • আক্রমণকারী কমেন্ট সেকশনে নিচের পেলোড পোস্ট করে।
  • যerved কোনো লেজিটিমেট ইউজার কমেন্ট বক্স খুলে কমেন্টটি দেখে, HTML এই স্ক্রিপ্টটি পার্স করে।
  • ব্রাউজার দ্বারা HTML পার্সিং হওয়ার সময়, ইউজারের কুকি আক্রমণকারীর সার্ভারে পাঠানো হয়।

আপনার ওয়েব অ্যাপ্লিকেশনে এই সাধারণ ভালনারেবিলিটি থাকলে এর খুব গम्भীর প্রভাব হতে পারে। আরেকটি সাধারণ XSS এক্সপ্লোയিটেশন হলো যখন আক্রমণকারী আপনার অ্যাপ্লিকেশনকে ড্রাইভ-বাই ডাউনলোডের জন্য ব্যবহার করে, যেখানে আক্রমণকারী এন্ড ইউজারকে তাদের জানা ছাড়া ম্যালওয়্যার ডাউনলোড করিয়ে দেয়, লেজিটিমেট দেখানো লিংকগুলোতে ক্লিক করিয়ে।

বিখ্যাত ক্রস-সাইট স্ক্রিপ্টিং আক্রমণের কেসগুলো

XSS আক্রমণ অধিকাংশ সময় আর্থিক লাভের জন্য হয়, একটি উল্লেখযোগ্য কেস হলো ই-কমার্স দানব eBay-র বিরুদ্ধে অতীতের আক্রমণ। হ্যাকাররা অনেক চিপ আইফোনের লিস্টিং-এ দূষিত যাভাস্ক্রিপ্ট কোড ইনজেক্ট করেছিল, যা ইউজারদের একটি ফেক লগইন পেজে রিডাইরেক্ট করত যেটি ইউজার ক্রেডেনশিয়াল কোম্প্রোমাইজ করার জন্য তৈরি করা হয়েছিল।

ই-কমার্স সাইটের পাশাপাশি অনেক সোশ্যাল মিডিয়া সাইটও এই ধরনের খ্যাতি-ক্ষতিকর আক্রমণের শিকার হয়েছে। টুইটার একবার এমন একটি XSS ওয়ার্ম দ্বারা আক্রান্ত হয়েছিল যা স্টকডেইলি নামে একটি ওয়েবসাইটে দূষিত লিংক বসিয়ে দিয়েছিল। আরেকটি পরিচিত XSS আক্রমণ ছিল মাইস্পেস আক্রমণ স্যামি ওয়ার্ম দ্বারা - একটি বেনাইন ভাইরাস যা মাইস্পেস ইউজারদের প্রোফাইল পেজ পরিবর্তন করত এবং র‍্যান্ডম ফ্রেন্ড রিকোয়েস্ট পাঠাত।

XSS আক্রমণ প্রতিরোধের সাবধানতা

XSS আক্রমণ প্রতিরোধের মানে ইউজারদের তাদের পেলোড ইনপুট দেওয়া বন্ধ করা নয়, বরং ব্রাউজারে HTML হিসেবে পার্স হওয়া থেকে রোধ করার ব্যবস্থা নেওয়া। তা সত্ত্বেও, XSS আক্রমণ রোধের জন্য কিছু পদ্ধতি নিচে দেওয়া হলো:

  1. ইনপুট ভ্যালিডেশন (Input Validation)

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

  2. নিরাপদ DOM এলিমেন্টের ব্যবহার (Use of secure DOM elements)

    প্রায়ই অনসেফ DOM এলিমেন্ট (ডকুমেন্ট অবজেক্ট মডেল) হ্যান্ডলিং সমৃদ্ধ ক্লায়েন্ট UI-এও XSS আক্রমণের কারণ হয়। উদাহরণস্বরূপ, innerHTML অ্যাট্রিবিউট ব্যবহার করলে ইউজার ইনপুট যাভাস্ক্রিপ্ট ইভেন্টসহ XSS হিসেবে রেন্ডার হয়। এই ক্ষেত্রে নিরাপদ বিকল্প হবে contentText বা innerText ব্যবহার করা।

  3. যাভাস্ক্রিপ্ট এস্কেপিং (JavaScript Escaping)

    সিঙ্গেল কোট এস্কেপ করলে যাভাস্ক্রিপ্টের ভিতরে ইনজেকশন রোধ করা যায়। ' এর সাথে HTML এনকোডিং ব্যবহার করে ইনজেকশন সমস্যা রোধ করা যায়।

  4. আউটপুট এনকোডিং (Output Encoding)

    আউটপুট এনকোডিং সর্বাধিক XSS পেলোড নিরস্ত করতে চমৎকার কাজ করে। এই পদ্ধতি সার্ভার সাইড ইনজেকশন আক্রমণ মিটিগেট করতে কাজ করে। HTML এনকোডিং একটি সাধারণ পদ্ধতি হলেও, URL এনকোডিং লিংক ও রিডাইরেক্টে যেকোনো মার্কআপ ইনজেকশন নিঃশেষ করতে সাহায্য করতে পারে।

  1. অ্যান্টিভাইরাস সফ্টওয়্যারের সম্পূর্ণ গাইড: হুমকি থেকে আপনার কম্পিউটার রক্ষা

  2. ৫জি ব্যাখ্যা: কীভাবে নেক্সট-জেনারেশন নেটওয়ার্ক কনেক্টিভিটি ও উদ্ভাবন রূপান্তর করছে

  3. BIM মাস্টার করুন: বিল্ডিং ইনফরমেশন মডেলিং-এর সম্পূর্ণ গাইড

  4. বিকন টেকনোলজি: ব্লুটুথ বিকন কীভাবে ফিজিক্যাল স্পেসকে ডিজিটাল অভিজ্ঞত সাথে जोড়ে