php - এসকিউএল ইনজেকশন বা অন্যান্য এসকিউএল আক্রমণগুলি এড়াতে কি "মাইসকিলি_রিয়াল_সেস্কেপ_স্ট্রিং" যথেষ্ট?



mysql security (1)

কেউ আমাকে বলতে পারে এটি নিরাপদ কিনা বা এটি এসকিউএল ইনজেকশন আক্রমণ বা অন্য এসকিউএল আক্রমণে ঝুঁকিপূর্ণ কিনা?

যেমন ইউরি 2 এক্স বলেছে, এসকিউএল ইঞ্জেকশনটি দেখুন যা mysql_real_escape_string() কাছাকাছি mysql_real_escape_string()

এসকিউএল ইঞ্জেকশন প্রতিরোধের সর্বোত্তম উপায় হ'ল প্রস্তুত বিবৃতি ব্যবহার করা। তারা নির্দেশাবলী (এসকিউএল কোয়েরি স্ট্রিং) থেকে ডেটা (আপনার প্যারামিটারগুলি) পৃথক করে এবং আপনার প্রশ্নের কাঠামোটিকে দূষিত করার জন্য ডেটার কোনও স্থান ছাড়বে না। প্রস্তুত বিবৃতি অ্যাপ্লিকেশন সুরক্ষার অন্যতম মৌলিক সমস্যা সমাধান করে।

এমন পরিস্থিতিতে যেখানে আপনি প্রস্তুত বিবৃতি (উদাহরণস্বরূপ LIMIT ) ব্যবহার করতে পারবেন না, প্রতিটি নির্দিষ্ট উদ্দেশ্যে খুব কঠোর শ্বেত তালিকা ব্যবহার করা সিকিউরিটির গ্যারান্টি দেওয়ার একমাত্র উপায়।

// This is a string literal whitelist
switch ($sortby) {
    case 'column_b':
    case 'col_c':
        // If it literally matches here, it's safe to use
        break;
    default:
        $sortby = 'rowid';
}

// Only numeric characters will pass through this part of the code thanks to type casting
$start = (int) $start;
$howmany = (int) $howmany;
if ($start < 0) {
    $start = 0;
}
if ($howmany < 1) {
    $howmany = 1;
}

// The actual query execution
$stmt = $db->prepare(
    "SELECT * FROM table WHERE col = ? ORDER BY {$sortby} ASC LIMIT {$start}, {$howmany}"
);
$stmt->execute(['value']);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);

আমি পোষ্ট করি যে উপরের কোডটি এসকিউএল ইনজেকশনের প্রতিরোধক, এমনকি অস্পষ্ট প্রান্ত ক্ষেত্রেও। আপনি যদি মাইএসকিউএল ব্যবহার করছেন তবে নিশ্চিত হয়ে নিন যে আপনি অনুকরণের প্রস্তুতি বন্ধ করেছেন।

$db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);

এটি আমার কোড:

  $email= mysqli_real_escape_string($db_con,$_POST['email']);
  $psw= mysqli_real_escape_string($db_con,$_POST['psw']);

  $query = "INSERT INTO `users` (`email`,`psw`) VALUES ('".$email."','".$psw."')";

কেউ আমাকে বলতে পারে এটি নিরাপদ কিনা বা এটি এসকিউএল ইনজেকশন আক্রমণ বা অন্য এসকিউএল আক্রমণে ঝুঁকিপূর্ণ কিনা?





sql-injection