এসকিউএল ইনজেকশন একটি ওয়েব হ্যাকিং কৌশল। এটি কোড ইনজেকশন কৌশল যা আপনার ডাটাবেসে ক্ষতিকারক কোড সন্নিবেশ করায় এবং ডাটাবেসকে ধ্বংস করে। এটি ওয়েব পৃষ্ঠা ইনপুটের মাধ্যমে দূষিত কোডের সন্নিবেশ।
এসকিউএল ইনজেকশনের প্রধান কারণ হল এসকিউএল ক্যোয়ারীতে স্মার্টভাবে ডেটা প্রদান করা যা আমাদের ডাটাবেসের মধ্যে থাকা ডেটাকে ম্যানিপুলেট করে।
ধরুন আমাদের শিক্ষার্থীদের ডেটা সহ একটি টেবিল আছে। প্রতিটি শিক্ষার্থী তার ছাত্র আইডি ব্যবহার করে তার নিজস্ব ডেটা দেখতে পারে। এসকিউএল কোয়েরি এমনভাবে ডিজাইন করা হয়েছে যে এটি ছাত্রের কাছ থেকে ছাত্র আইডি ইনপুট নেয়।
এখন, ছাত্র তার ছাত্র আইডি "12345 বা 1=1" হিসাবে লিখতে পারে। এটি নিম্নলিখিত ক্যোয়ারীতে অনুবাদ করে।
id==12345 বা 1=1 ছাত্রদের থেকে * নির্বাচন করুন
এখন, উপরের ক্যোয়ারীটি অন্যান্য ছাত্রদের রেকর্ডও ফিরিয়ে দেবে কারণ 1=1 সর্বদা সত্য। তাই, অন্যান্য ছাত্রদের ডেটা নিরাপদ নয় এবং হ্যাকারদের দ্বারা অপব্যবহারের প্রবণতা রয়েছে৷
৷Mysql সংযোগকারী মডিউলে এসকিউএল ইনজেকশন প্রতিরোধ করার জন্য ক্যোয়ারী মান এড়িয়ে যাওয়ার পদ্ধতি রয়েছে। স্থানধারক %s ব্যবহার করে ক্যোয়ারী মানগুলি এড়িয়ে যেতে পারে৷
৷ধরুন, আমাদের “MyTable” নামে একটি টেবিল আছে।
+---------+---------+------------+------------+ | নাম | ক্লাস | শহর | মার্কস |+---------+---------+------------+------------+| করণ | 4 | অমৃতসর | 95 || সাহিল | 6 | অমৃতসর | 93 || কৃতি | 3 | বটতলা | 88 || খুশি | 9 | দিল্লী | 90 || কিরাত | 5 | দিল্লী | 85 |+---------+---------+------------+------------+প্রে>উদাহরণ
import mysql.connectordb=mysql.connector.connect(host="your host", user="your username", password="yourpassword",database="database_name")cursor=db.cursor()query=" আমার ফলাফলে সারির জন্য নাম=%s"নাম=("করণ",)cursor.execute(query,name)প্রিন্ট(সারি)উপরের কোডটি ক্যোয়ারী মানগুলি এড়ানোর জন্য স্থানধারকদের ব্যবহার দেখায়৷
৷আউটপুট
('করণ', 4, 'অমৃতসর' , 95)