XSS এবং CSRF থেকে সুরক্ষা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর সিকিউরিটি |

XSS (Cross-Site Scripting) এবং CSRF (Cross-Site Request Forgery) হল দুটি সাধারণ নিরাপত্তা হুমকি, যা ওয়েব অ্যাপ্লিকেশনে আক্রমণকারী দ্বারা করা হতে পারে। CodeIgniter এই দুটি আক্রমণ থেকে সুরক্ষা দেওয়ার জন্য বিভিন্ন বিল্ট-ইন ফিচার সরবরাহ করে।


XSS (Cross-Site Scripting) আক্রমণ

XSS আক্রমণে, আক্রমণকারী ম্যালিশিয়াস স্ক্রিপ্ট কোড ব্যবহারকারীর ব্রাউজারে চালানোর জন্য একটি ওয়েব অ্যাপ্লিকেশনকে প্রভাবিত করে। এটি ব্যবহারকারীর সেশন, কুকি, বা অন্যান্য গুরুত্বপূর্ণ তথ্য চুরি করার জন্য ব্যবহৃত হতে পারে।

CodeIgniter-এ XSS সুরক্ষা

CodeIgniter-এ XSS Filtering ফিচারটি বিল্ট-ইনভাবে রয়েছে, যা ইউজার ইনপুটে ম্যালিশিয়াস স্ক্রিপ্ট ইনজেকশন ব্লক করতে সহায়তা করে।

XSS সুরক্ষা সক্ষম করা

CodeIgniter-এর Security ক্লাসে XSS ফিল্টারিং চালু করা থাকে, তবে এটি ইনপুটে ম্যালিশিয়াস কোড থাকার ক্ষেত্রে তা ফিল্টার করে।

  1. xss_clean() ফাংশন ব্যবহার:
    • এটি ইনপুট ডেটা ক্লিন করতে এবং XSS আক্রমণ থেকে সুরক্ষা দিতে ব্যবহৃত হয়।
$clean_input = $this->security->xss_clean($this->request->getPost('user_input'));
  1. HTML ফর্ম ইনপুট ফিল্টারিং:
    • form_open() ফর্ম হেল্পার ব্যবহার করার সময় xss_clean() চালানো যাবে।
$clean_input = $this->security->xss_clean($this->request->getPost('input_field'));

CSRF (Cross-Site Request Forgery) আক্রমণ

CSRF আক্রমণ ব্যবহারকারীর অনুমতি ছাড়া তার ব্রাউজারের মাধ্যমে একটি অনিচ্ছাকৃত রিকোয়েস্ট পাঠানোর মাধ্যমে ঘটে। এটি সাইটের ব্যবহারকারীর সেশনের অধিকার নিয়ে আক্রমণকারী গোপনে কোনো অনুকূল অ্যাকশন সম্পাদন করতে পারে।

CodeIgniter-এ CSRF সুরক্ষা

CodeIgniter ডিফল্টভাবে CSRF Protection সক্রিয় করে, তবে এটি কনফিগার করা বা কাস্টমাইজও করা যেতে পারে। CSRF সুরক্ষা নিশ্চিত করার জন্য, CodeIgniter টোকেন ব্যবহার করে, যা ফর্ম সাবমিশনের সময় যাচাই করে।

CSRF সুরক্ষা সক্ষম করা
  1. CSRF ফিচার কনফিগারেশন: app/Config/Security.php ফাইলে CSRF সুরক্ষা সক্ষম করার জন্য নিচের মত কনফিগার করুন।
public $CSRFProtection = true;  // CSRF সুরক্ষা সক্রিয়
public $csrfTokenName = 'csrf_test_name'; // CSRF টোকেনের নাম
public $csrfHeaderName = 'X-CSRF-TOKEN'; // CSRF টোকেন হেডার
public $csrfExpire = 7200; // CSRF টোকেনের মেয়াদ
  1. csrf_token() এবং csrf_hash() ব্যবহার:
    • ফর্ম তৈরি করার সময় CSRF টোকেন যোগ করতে পারেন।
// CSRF টোকেন ইনপুট ফর্মে অ্যাড করা
echo form_open('your/form/action');
echo form_input(['name' => 'username', 'value' => '']);
echo form_submit('submit', 'Submit');
echo csrf_field(); // CSRF টোকেন ফর্মে অ্যাড করা
echo form_close();
  • csrf_field() ফাংশনটি স্বয়ংক্রিয়ভাবে CSRF টোকেন ইনপুট হিসেবে HTML ফর্মে যোগ করবে।
CSRF টোকেন যাচাই

CodeIgniter স্বয়ংক্রিয়ভাবে POST রিকোয়েস্টের CSRF টোকেন যাচাই করে, তবে আপনি চাইলে csrf_verify() ফাংশন ব্যবহার করে ম্যানুয়ালি যাচাই করতে পারেন।

if (!$this->security->csrf_verify()) {
    echo 'Invalid CSRF Token';
}

XSS এবং CSRF সুরক্ষা এর সুবিধা

  1. XSS সুরক্ষা:
    • ম্যালিশিয়াস স্ক্রিপ্ট ইনজেকশন থেকে সাইট এবং ইউজারের ডেটা সুরক্ষিত রাখে।
    • ফর্ম ডেটা, URL প্যারামিটার, এবং কুকির মাধ্যমে ইনপুটকে স্যানিটাইজ করে।
  2. CSRF সুরক্ষা:
    • আক্রমণকারীকে ব্যবহারকারীর অনুমতি ছাড়াই অ্যাকশন নিতে বাধা দেয়।
    • নিরাপত্তার জন্য ফর্মে স্বতন্ত্র টোকেন ব্যবহার করে।

সারাংশ

  • XSS আক্রমণ থেকে সুরক্ষিত থাকার জন্য CodeIgniter xss_clean() মেথড প্রদান করে, যা ইনপুট ডেটাতে যেকোনো স্ক্রিপ্ট ফিল্টার করে।
  • CSRF আক্রমণ থেকে সুরক্ষিত থাকতে, CodeIgniter CSRF সুরক্ষা সক্ষম করে, যা ফর্ম সাবমিশনের সময় স্বতন্ত্র CSRF টোকেন ব্যবহার করে।
  • CodeIgniter-এ XSS এবং CSRF সুরক্ষা ব্যবহারে, আপনি সহজেই নিরাপত্তা বজায় রাখতে পারেন এবং অ্যাপ্লিকেশনের দুর্বলতা কমাতে পারেন।
Content added By
Promotion