হ্যাঁ, প্রস্তুত বিবৃতিগুলির ব্যবহার অন্তত তাত্ত্বিকভাবে সমস্ত SQL ইনজেকশন বন্ধ করে দেয়। অনুশীলনে, প্যারামিটারাইজড বিবৃতি বাস্তব প্রস্তুত বিবৃতি নাও হতে পারে, যেমন পিএইচপি-তে PDO ডিফল্টরূপে তাদের অনুকরণ করে তাই এটি একটি প্রান্ত কেস আক্রমণের জন্য উন্মুক্ত। যদি আপনি সত্যিকারের প্রস্তুত বিবৃতি ব্যবহার করেন তবে সবকিছু নিরাপদ।
প্যারামিটারাইজড প্রশ্ন কেন এসকিউএল ইনজেকশন প্রতিরোধ করে?
প্যারামিটারাইজড কোয়েরি SQL কোয়েরি চালানোর আগে আর্গুমেন্টের যথাযথ প্রতিস্থাপন করে। এটি আপনার প্রশ্নের অর্থ পরিবর্তন করে "নোংরা" ইনপুট হওয়ার সম্ভাবনা সম্পূর্ণভাবে সরিয়ে দেয়। অর্থাৎ, ইনপুটটিতে যদি SQL থাকে, তাহলে এটি কার্যকর করা অংশ হতে পারে না কারণ এসকিউএল কখনই ফলাফলের বিবৃতিতে ইনজেক্ট করা হয় না।
প্যারামিটারাইজড এসকিউএল কি নিরাপদ?
প্যারামিটারাইজড স্টেটমেন্ট নিশ্চিত করে যে এসকিউএল স্টেটমেন্টে পাস করা প্যারামিটার (অর্থাৎ ইনপুট) নিরাপদ পদ্ধতিতে ব্যবহার করা হয়। উদাহরণস্বরূপ, একটি প্যারামিটারাইজড স্টেটমেন্ট ব্যবহার করে JDBC-তে SQL কোয়েরি চালানোর একটি নিরাপদ উপায় হবে: … executeQuery(sql, email); যখন (ফলাফল।
এসকিউএল ইনজেকশনে প্যারামিটারাইজড কোয়েরি কী?
প্যারামিটারাইজড প্রশ্নগুলি ডেভেলপারকে প্রথমে সমস্ত SQL কোড সংজ্ঞায়িত করতে বাধ্য করে এবং তারপর প্রতিটি প্যারামিটার পরে ক্যোয়ারীতে পাস করে। এই কোডিং শৈলী ডাটাবেসকে কোড এবং ডেটার মধ্যে পার্থক্য করতে দেয়, ব্যবহারকারীর ইনপুট যা সরবরাহ করা হয় তা নির্বিশেষে৷
কীভাবে প্যারামিটারাইজড স্টেটমেন্ট প্রশমিত হয়একটি এসকিউএল ইনজেকশন আক্রমণ?
Parametrized প্রশ্ন এই পদ্ধতিটি ডাটাবেসের পক্ষে কোড চিনতে এবং ইনপুট ডেটা থেকে আলাদা করা সম্ভব করে তোলে। ব্যবহারকারীর ইনপুট স্বয়ংক্রিয়ভাবে উদ্ধৃত হয় এবং সরবরাহকৃত ইনপুট উদ্দেশ্য পরিবর্তনের কারণ হবে না, তাই এই কোডিং শৈলী একটি এসকিউএল ইনজেকশন আক্রমণ প্রশমিত করতে সহায়তা করে৷