Safe Mode এবং Magic Quotes এর অপসারণ

Deprecations and Removed Features in PHP7 (PHP7 এ অবলুপ্ত এবং অপসারিত ফিচার) - পিএইচপি (PHP 7) - Computer Programming

307

PHP Safe Mode এবং Magic Quotes ফিচারগুলি পূর্বে PHP তে নিরাপত্তার জন্য ব্যবহার করা হতো, তবে এগুলি বেশ কিছু সমস্যা সৃষ্টি করেছিল এবং বর্তমানে PHP 5.4.0 সংস্করণ থেকে deprecated (অপসারিত) হয়েছে। এগুলি অপসারণ করা PHP এর নিরাপত্তা, পারফরম্যান্স এবং কোড ক্লিনলিনেসের জন্য সহায়ক।

১. PHP Safe Mode:

Safe Mode PHP 4.0 এবং PHP 5.x সংস্করণে একটি নিরাপত্তা ফিচার ছিল, যা সিস্টেমের কিছু নির্দিষ্ট ফাংশন যেমন file manipulation, system commands ইত্যাদি সীমাবদ্ধ করতে ব্যবহৃত হত। এর লক্ষ্য ছিল ব্যবহারকারীকে সুরক্ষিত রাখতে এবং সিস্টেমে ক্ষতিকর কার্যক্রম থেকে রক্ষা করা। তবে, Safe Mode কখনও সঠিকভাবে কাজ করেনি এবং এর মধ্যে কিছু দুর্বলতা ছিল, যেমন:

  • Performance Issues: Safe Mode কোডের কার্যকারিতাকে ধীর করে দিতে পারে, কারণ এটি প্রতিটি ফাংশন কলের জন্য অতিরিক্ত চেক করতে হয়।
  • Incompatibility with Modern Applications: এটি অনেক আধুনিক PHP অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্যপূর্ণ ছিল না, বিশেষ করে যখন তারা file manipulation বা shell commands ব্যবহার করতো।

Safe Mode Deactivation:

PHP 5.4.0 এর পরে Safe Mode সম্পূর্ণভাবে অপসারিত হয়েছে এবং এর জন্য আর কোনো কনফিগারেশন ফাইল বা ফাংশন ব্যবহার করার প্রয়োজন নেই।

  • PHP 5.4.0 এবং তার পরবর্তী সংস্করণে Safe Mode সম্পূর্ণ অপসারিত হয়েছে, তাই আপনি যদি PHP 5.4 বা পরবর্তী সংস্করণ ব্যবহার করেন, তাহলে আপনাকে Safe Mode নিয়ে চিন্তা করতে হবে না।

Safe Mode অপসারণ করার জন্য কিছু কাজ করা ছিল:

  1. php.ini এ safe_mode সেটিং পরিবর্তন:

    আগের PHP সংস্করণে যদি Safe Mode চালু করা থাকত, তবে এটি php.ini ফাইলে safe_mode সেটিং দিয়ে বন্ধ করা যেতে পারত:

    safe_mode = Off
  2. php.ini তে safe_mode_exec_dir বা safe_mode_allowed_env_vars সেটিংগুলি সঠিকভাবে কনফিগার করা ছিল।

    তবে, বর্তমানে Safe Mode এর কোনো প্রয়োজনীয়তা নেই কারণ এটি PHP 5.4.0 এ deprecated এবং PHP 7.x+ তে সম্পূর্ণভাবে অপসারিত হয়েছে।


২. Magic Quotes:

Magic Quotes ফিচারটি PHP তে একটি নিরাপত্তা বৈশিষ্ট্য ছিল, যা SQL injection প্রতিরোধে সাহায্য করার জন্য স্বয়ংক্রিয়ভাবে ইনপুট ডেটা থেকে escape চিহ্ন যোগ করত। অর্থাৎ, এটি ইনপুট থেকে স্পেশাল ক্যারেক্টার যেমন ', ", ;, ** ইত্যাদি স্বয়ংক্রিয়ভাবে escape করত, যাতে SQL কোয়েরি ইনজেকশনের ঝুঁকি কমে যায়।

তবে, Magic Quotes এর কিছু গুরুতর সমস্যা ছিল:

  • Over Escaping: এটি অনেক সময় এমন ডেটার উপর কাজ করত যা এর প্রয়োজন ছিল না, ফলে ডেটা ত্রুটিপূর্ণ বা অপ্রত্যাশিত ফলাফল হতে পারে।
  • Incompatibility: এটি কোডে data sanitization বা escaping এর জন্য একটি অবিশ্বস্ত উপায় ছিল এবং এটি আরও উন্নত পদ্ধতির পরিবর্তে ব্যবহৃত হচ্ছিল।
  • Inconsistent Behavior: Magic Quotes এর মাধ্যমে কিছু অংশে অতিরিক্ত escaping হতে পারতো এবং কিছু ক্ষেত্রে এটি হতো না, যা ডেভেলপারদের জন্য বিভ্রান্তিকর ছিল।

Magic Quotes Deactivation:

PHP 5.4.0 থেকে Magic Quotes ফিচারটি deprecated এবং পরবর্তীতে removed হয়ে গেছে। তাই আপনি যদি PHP 5.4 বা পরবর্তী সংস্করণ ব্যবহার করেন, তাহলে Magic Quotes নিয়ে চিন্তা করার প্রয়োজন নেই।

Magic Quotes অপসারণ করার জন্য কাজ:

  1. php.ini ফাইলে magic_quotes_gpc এর মান পরিবর্তন করা:

    PHP 5.3.x এবং তার পূর্ববর্তী সংস্করণে php.ini ফাইলে magic_quotes_gpc এর মান On থাকলে, এটি Off করা যেতে পারত:

    magic_quotes_gpc = Off
  2. magic_quotes_runtime এবং magic_quotes_sybase এর মানও Off করতে হতে পারত:

    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
  3. php.ini ফাইলে Magic Quotes বন্ধ করার পরে, আপনার কোডে SQL injection প্রতিরোধের জন্য proper input sanitization এবং prepared statements ব্যবহার করতে হবে, যা আরও নিরাপদ এবং কার্যকর পদ্ধতি।

৩. Safe Mode এবং Magic Quotes অপসারণের পরবর্তী পদক্ষেপ

এখন, Safe Mode এবং Magic Quotes অপসারণের পর, আপনাকে আরও উন্নত নিরাপত্তা এবং পারফরম্যান্স নিশ্চিত করতে কিছু পদক্ষেপ নিতে হবে:

  1. Prepared Statements ব্যবহার করুন:
    SQL injection থেকে সুরক্ষা পেতে PDO (PHP Data Objects) বা MySQLi ব্যবহার করে prepared statements ব্যবহার করা উচিত। এতে ডেটা স্যানিটাইজেশন করা হবে এবং SQL injection আক্রমণ প্রতিরোধ করা যাবে।

    PDO উদাহরণ:

    <?php
    $pdo = new PDO('mysql:host=localhost;dbname=test', $username, $password);
    $stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
    $stmt->execute(['email' => $email]);
    ?>
  2. Input Sanitization এবং Validation:
    ইনপুট স্যানিটাইজেশন এবং ভ্যালিডেশন অবশ্যই করতে হবে। উদাহরণস্বরূপ, filter_var() ফাংশন দিয়ে ইমেইল চেক করা, বা htmlspecialchars() ফাংশন দিয়ে HTML ইনপুটকে স্যানিটাইজ করা।

    <?php
    $email = filter_var($email, FILTER_SANITIZE_EMAIL);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Invalid email format";
    }
    ?>
  3. Use Latest PHP Versions:
    PHP এর সর্বশেষ সংস্করণে security improvements এবং performance improvements থাকে, তাই সর্বশেষ সংস্করণ ব্যবহার করা গুরুত্বপূর্ণ।
  4. Enable HTTPS:
    আপনার ওয়েব অ্যাপ্লিকেশনে HTTPS সক্রিয় করা উচিত, যা সমস্ত ডেটা এনক্রিপ্ট করে এবং Man-in-the-middle attacks প্রতিরোধে সাহায্য করে।

সারসংক্ষেপ

  • PHP Safe Mode এবং Magic Quotes ফিচারগুলি PHP 5.4.0 সংস্করণের পরে deprecated এবং removed করা হয়েছে, কারণ এগুলি নিরাপত্তা এবং কার্যকারিতার জন্য সমস্যার সৃষ্টি করেছিল।
  • Safe Mode মূলত সিস্টেমের ফাইল অপারেশন এবং কমান্ড এক্সিকিউশন সীমাবদ্ধ করতে ব্যবহৃত হত, তবে এটি এখন PHP 7.x+ এ আর ব্যবহৃত হয় না।
  • Magic Quotes স্বয়ংক্রিয়ভাবে ইনপুট ডেটা থেকে স্পেশাল ক্যারেক্টার escape করত, কিন্তু এটি খুবই অসম্পূর্ণ এবং বিপজ্জনক ছিল। এখন এই ফিচারটি বাদ দেওয়া হয়েছে এবং সঠিক input sanitizationprepared statements ব্যবহার করা উচিত।
  • বর্তমান PHP সংস্করণে নিরাপত্তা নিশ্চিত করার জন্য prepared statements, input validation এবং proper data sanitization অত্যন্ত গুরুত্বপূর্ণ।
Content added By
Promotion

Are you sure to start over?

Loading...