এসকিউএল ইনজেকশন

এসকিউএল ইনজেকশন  একটি কোড ঢোকানোর প্রয়োগ কৌশল যেটি উপাত্ত চালিত অ্যাপ্লিকেশন আক্রমণ করতে ব্যবহৃত হয়। এই পদ্ধতিতে অসৎ উদ্দেশ্যমূলক এসকিউএল স্টেটমেন্ট/বিবৃতিসমূহ, এন্ট্রি ফিল্ডে সম্পাদন করার জন্য প্রবেশ করান হয় (উদাহরণস্বরূপ ডাটাবেসের সমস্ত তথ্য আক্রমণকারীর কাছে পাঠিয়ে দেয়)। এসকিউএল ইনজেকশন একটি অ্যাপ্লিকেশন সফ্টওয়্যারের কোন একটি নিরাপত্তা ঝুঁকিকে কাজে লাগায়-উদাহরণস্বরূপ যখন:-
 ব্যবহারকারীর ইনপুট এসকিউএল স্টেটমেন্টে এমবেড করা আক্ষরিক বা বেনামী স্ট্রিং এসকেপ ক্যারেক্টারসমূহের জন্য ভুল ফিল্টার হয়।
 ব্যবহারকারীর ইনপুট একটি স্ট্রংলি টাইপ করা নয় এবং অপ্রত্যাশিতভাবে কার্যকর করা হয়েছে। স্ট্রংলি টাইপ ভাষা হল যেটি একটি ত্রুটি উৎপন্ন করতে পারে অথবা কম্পাইল করতে গ্রাহ্যকর হবে না।
বেশিরভাগ সময় এসকিউএল ইনজেকশন ওয়েবসাইটগুলির জন্য একটি আক্রমণ বাহক হিসাবে পরিচিত কিন্তু এটি এসকিউএলের যে কোন প্রকার ডাটাবেস আক্রমণ করতেও ব্যবহৃত হতে পারে।

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

২০১২র একটি সমীক্ষায় দেখা গেছে যে গড় ওয়েব অ্যাপ্লিকেশন প্রতি মাসে ৪টি আক্রমণের প্রচারণা পেয়েছে, খুচরো ব্যবসায়ী ও অন্যান্য ব্যাবসায়ীদের গড়ে ২টি আক্রান্ত হবার সম্ভাবনা দেখা গেছে।

ইতিহাস 

১৯৯৮ সালে এসকিউএল ইনজেকশনের প্রথম প্রকাশ্য আলোচনার শুরু; উদাহরণস্বরূপ, ১৯৯৮ সালের ফ্র্যাক ম্যাগাজিনেের একটি নিবন্ধ।

বিন্যাস 
ওপেন ওয়েব অ্যাপ্লিকেশন সিকিউরিটি প্রকল্প দ্বারা ২০০৭ এবং ২০১০ সালের ওয়েব অ্যাপ্লিকেশনের আক্রান্ত হবার শীর্ষ ১০টি ঝুঁকির একটি এসকিউএল ইনজেকশন (এসকিউএলআই) বিবেচনা করা হয়। ২০১৩ সালে, এসকিউএলআই ওপেন ওয়েব অ্যাপ্লিকেশন সিকিউরিটি প্রকল্পে আক্রান্ত হবার শীর্ষ ১০টি ঝুঁকির প্রথম নম্বরে ছিল।  এসকিউএল ইনজেকশনের প্রধান চারটি উপ-শ্রেণী আছে:
 ক্লাসিক এসকিউএলআই
 ব্লাইন্ড অথবা ইন্টারফারেন্স এসকিউএল ইনজেকশন
 ডাটাবেস ম্যানেজমেন্ট সিস্টেম-নির্দিষ্ট এসকিউএলআই
 কমপাউন্ডেড এসকিউএলআই

 এসকিউএল ইনজেকশন + অপর্যাপ্ত অনুমোদন
 এসকিউএল ইনজেকশন + পরিষেবা অস্বীকার আক্রমণগুলি
 এসকিউএল ইনজেকশন + ডোমেন নাম পদ্ধতি চুরি
 এসকিউএল ইনজেকশন + ক্রস সাইট স্ক্রিপ্টিং

স্টর্ম ওয়ার্ম কম্পাঊন্ড এস কিউ এল আইয়ের একটি প্রতিরূপ।

২০১০ পর্যন্ত এসকিউএলআইএর বিবর্তন অনুসারে, এই শ্রেণিবিভাগ এসকিউএলআই এর অবস্থা উপস্থাপন করে— পরবর্তী পরিমার্জনের কাজ চলছে।

কারিগরী প্রয়োগগুলি

ত্রুটিপূর্ণভাবে পরিশ্রুত অব্যহতি অক্ষরগুলি 
এই ধরনের এসকিউএল ইনজেকশন ঘটে যখন ব্যবহারকারীর ইনপুট অব্যাহতি অক্ষরগুলির জন্য পরিশ্রুত হয় না এবং তখন এটি একটি এসকিউএল স্টেটমেন্ট/বিবৃতিতে পাস/অতিক্রান্ত হয়। এটি এই অ্যাপ্লিকেশনটির এন্ড ইউসার(প্রান্তিক ব্যবহারকারী) দ্বারা ডাটাবেস সম্পাদনায়, স্টেটমেন্টে সম্ভাব্য কারচুপির ফলাফল।

কোডের নিম্নলিখিত লাইন এই ঝুঁকিটি তুলে ধরে:

স্টেটমেন্ট/বিবৃতি = "SELECT * FROM users WHERE name = '" + userName + "';"

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

' OR '1'='1
অথবা এমনকি বাকি কুয়েরি ব্লক করতে কমেন্টস/মন্তব্য ব্যবহার করা( এসকিউএল কমেন্টস তিন ধরনের হয়)। তিনটির সবকটি লাইনের শেষে একটি ফাঁকা স্থান আছে:
' OR '1'='1' --
' OR '1'='1' ({
' OR '1'='1' /* 

ঊর্ধ্বতন ভাষা দ্বারা নিম্নলিখিত একটি এসকিউএল স্টেটমেন্ট এইপ্রকার:

SELECT * FROM users WHERE name = '' OR '1'='1';
SELECT * FROM users WHERE name = '' OR '1'='1' -- ';

এই কোড একটি অনুমোদনের কার্যপ্রণালীরূপে ব্যবহার করা হলে এই উদাহরণটি একজন নির্দিষ্ট ব্যবহারকারীর নামের বদলে 'সমস্ত' ব্যবহারকারীদের প্রত্যেকটি ডাটা ফিল্ড (*) নির্বাচনে ব্যবহার হতে পারে যেমন কোডার(যিনি কোড লিখেছিলেন) চেয়েছিলেন।, কারণ '1' = '1' মূল্যায়ন সবসময় সত্য (শর্ট সার্কিট মূল্যায়ণ)

নিচের বিবৃতিতে "ব্যবহারকারীর নাম" এর নিম্নলিখিত মান, "ব্যবহারকারী" টেবিল মুছে ফেলার পাশাপাশি "userinfo" টেবিল থেকে সমস্ত ডেটা নির্বাচন করতে পারে, একটি এপিআই ব্যবহার করে যেটি একাধিক স্টেটমেন্টের অনুমতি দেয় (সারাংশ হল প্রতিটি ব্যবহারকারীর তথ্য প্রকাশ করতে পারে):

 a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't'

এই ইনপুটটি নিম্নলিখিত চূড়ান্ত ও নিদিষ্ট এসকিউএল স্টেটমেন্ট উপস্থাপনা করে।

SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't';

যদিও বেশির ভাগ SQL সার্ভার প্রয়োগ ব্যবস্থাগুলো একাধিক বিবৃতি এই ভাবে একটি কলের মাধ্যমে কার্যকর করার অনুমতি দেয়। কিছু এসকিউএল এপিয়াই যেমন পিএইচপির mysql_query() ফাংশনটি নিরাপত্তার কারণে এটার অনুমতি দেয় না। এটি সম্পূর্ণরূপে আলাদা ক্যোয়ারী ইনজেকশনের থেকে আক্রমণকারীদের বাধা দেয়, কিন্তু তাদের ক্যোয়ারী পরিবর্তন করার থেকে আটকাতে পারে না।

ত্রুটিপূর্ন টাইপ নিয়ন্ত্রণ 

এই ধরনের এসকিউএল ইনজেকশন ঘটে যখন একটি  'ইউসার সাপ্লাায়েড' /ব্যবহারকারী দ্বারা লিখিত ফিল্ডটি শক্তিশালী ভাবে টাইপ করা হয় না অথবা টাইপ কন্সট্রেন্টের এর জন্য যাচাই করা থাকে না। এইটি ঘটতে পারে যখন একটি সাংখ্যিক ক্ষেত্র, একটি এসকিউএল স্টেটমেন্টে ব্যবহার করা হয়, কিন্তু প্রোগ্রামার ব্যবহারকারীর সরবরাহকৃত ইনপুটটি সাংখ্যিক কিনা তা যাচাই করতে কোন চেক লাগান না। যেমন:

 statement := "SELECT * FROM userinfo WHERE id = " + a_variable + ";"

এই বিবৃতি থেকে স্পষ্ট যে প্রণেতা "id" ক্ষেত্রটির সঙ্গে সংযুক্ত a_variable টি একটি সংখ্যাই হোক এমনটি চেয়েছিলেন। যাইহোক, এটি আসলে একটি স্ট্রিং হলে এন্ড ইউসার এস্কেপ কারেক্টারের প্রয়োজনকে বাদ দিয়ে স্টেটমেন্টটি ইচ্ছামত বদলাতে পারেন। উদাহরণস্বরূপ a_variable কে সেট করে

1;DROP TABLE users

ডাটাবেস থেকে "ব্যবহারকারীদের" টেবিলটি ড্রপ করে দেবে(মুছে দেবে) যেহেতু এসকিউএলটি দাঁড়িয়েছে:

SELECT * FROM userinfo WHERE id=1; DROP TABLE users;

ব্লাইন্ড এসকিউএল ইনজেকশন 
ব্লাইন্ড এসকিউএল ইনজেকশন সেক্ষেত্রে ব্যবহার হয়, যখন একটি ওয়েব অ্যাপ্লিকেশন একটি এসকিউএল ইনজেকশন ঝুঁকির মুখে থাকে কিন্তু ইনজেকশনটির ফলাফল আক্রমণকারী কাছে দৃশ্যমান নয়। ঝুঁকিযুক্ত পাতাটি উপাত্ত প্রদর্শনকারী পাতা নাও হতে পারে কিন্তু ওই পাতাটি কল করার জন্য যে বৈধ এসকিউএল স্টেটমেন্টটি আছে তাতে যে যৌক্তিক বিবৃতি ইনজেকট করা হয়েছে, তার ফলাফলের উপর নির্ভর করে, ভিন্নভাবে উপাত্ত প্রদর্শিত হতে পারে। আক্রমণের এই ধরনটি প্রথাগতভাবে সময় সাপেক্ষ কারণ প্রতিটি বিট উদ্ধার করার জন্য একটি নতুন বিবৃতি তৈরি করা প্রয়োজন হয় এবং পাতাটির কাঠামোর উপর নির্ভর করে, আক্রমণ অনেক সময় অসফল হতে পারে। সাম্প্রতিক ক্রমবিকাশে আরো সামঞ্জস্যপূর্ণ এবং দক্ষ নিষ্কাশনের অনুমতি সহ প্রতিটি অনুরোধে একাধিক বিট পুনরুদ্ধার করতে অনুমতি দেয়, কোন অসফল অনুরোধ ছাড়া।  একবার ঝুঁকির স্থান এবং লক্ষ্যস্থলের তথ্যটি প্রতিষ্ঠিত হলে বিভিন্ন সরঞ্জাম দণ্ডের সাহায্যে এই আক্রমণগুলি স্বয়ংক্রিয়ভাবে হতে পারে।

শর্তসাপেক্ষ প্রতিক্রিয়া 
এক ধরনের ব্লাইন্ড এসকিউএল ইনজেকশন ডাটাবেসকে একজন সাধারণ অ্যাপ্লিকেশন পাতায় একটি যৌক্তিক বিবৃতি মূল্যায়ন করতে বাধ্য করে। উদাহরণস্বরূপ একটি বই পর্যালোচনা ওয়েবসাইট, যেটি বই পর্যালোচনা প্রদর্শন নির্ধারণ করার জন্য একটি কোয়েরি স্ট্রিং ব্যবহার করে। সেইজন্য http://books.example.com/showReview.php?ID=5 ইউয়ারএল কুয়েরিটি সার্ভারে রান করাবে।
SELECT * FROM bookreviews WHERE ID = 'Value(ID)'; যা থেকে বুকরিভিউ টেবিলের মধ্যে সংরক্ষিত আইডি ৫ এর পর্যালোচনা ডেটা দিয়ে পর্যালোচনা পাতা ভরবে, কুয়েরিটি সার্ভারে সম্পূর্ণরূপে ঘটবে; ব্যবহারকারী ডাটাবেস, টেবিল, বা ফিল্ডের নামগুলো, কিংবা কোয়েরি স্ট্রিং কোনটাই জানে না। ব্যবহারকারী শুধুমাত্র দেখেন যে উপর্যুক্ত ইউয়ারএল- এ একটি বই পর্যালোচনা ফেরৎ আসছে। একজন হ্যাকার ইউআরএলগুলি লোড করতে পারেন। http://books.example.com/showReview.php?ID=5 OR 1=1 এবং http://books.example.com/showReview.php?ID=5 AND 1=2, যথাক্রমে যে ক্যোয়ারীগুলি ঘটতে পারে
SELECT * FROM bookreviews WHERE ID = '5' OR '1'='1';
SELECT * FROM bookreviews WHERE ID = '5' AND '1'='2';

"1=1" URL দ্বারা যদি মূল পর্যালোচনা লোড হয় এবং "1 = 2" URL থেকে একটি খালি অথবা ত্রুটি পাতায় ফিরিয়ে দেওয়া হয় এবং ব্যবহারকারীকে ইনপুটটি অবৈধ সতর্ক করার জন্য ফেরত পৃষ্ঠা তৈরি করা নেই অথবা অন্য কথায়, একটি ইনপুট টেস্ট স্ক্রিপ্ট দ্বারা ফাঁদে পড়েছে, সাইটটি সম্ভবত একটি এসকিউএল ইনজেকশন আক্রমণের ঝুঁকির সম্মুখীন হতে পারে যেহেতু কুয়েরি সম্ভবত উভয় ক্ষেত্রেই সফলভাবে গৃহীত হবে। হ্যাকার মাইএসকিউএল সার্ভারে চলমান সংস্করণ নম্বরটি প্রকাশ করার জন্য এই কুয়েরি স্ট্রিং দ্বারা পরিকল্পিত পথে এগিয়ে যেতে পারেন: http://books.example.com/showReview.php?ID=5 AND substring(@@version, 1, INSTR(@@version, '.') - 1)=4, যা একটি সার্ভারে চলমান মাইএসকিউএল ৪ তে বই পর্যালোচনা এবং অন্যথায় একটি খালি অথবা ত্রুটি পৃষ্ঠা দেখাবে। হ্যাকার আক্রমণের আরেকটি পথ আবিষ্কার অথবা তার লক্ষ্য পূর্ণ না হওয়া পর্য্যন্ত সার্ভার থেকে আরও তথ্যের সংগ্রহের জন্য কুয়েরি স্ট্রিংএর ভিতর কোড ব্যবহার চালিয়ে যেতে পারেন।

দ্বিতীয় সারির এসকিউএল ইনজেকশন 
দ্বিতীয় সারির এসকিউএল ইনজেকশন ঘটে, যখন অবিলম্বে নির্বাহ হবার বদলে, জমা দেওয়া ভ্যালুতে/মানে, সংরক্ষিত ক্ষতিকারক কমান্ডটি থাকে। কিছু কিছু ক্ষেত্রে, অ্যাপ্লিকেশন সঠিকভাবে একটি এসকিউএল বিবৃতি এনকোড করে এবং বৈধ এসকিউএল হিসাবে সংরক্ষণ করতে পারে। এরপরে, অ্যাপ্লিকেসানের অন্য অংশ এসকিউএল ইনজেকশন সুরক্ষা নিয়ন্ত্রণ ছাড়া, এই সংরক্ষিত এসকিউএল বিবৃতিটি চালাতে পারে। এই আক্রমণে, কীভাবে জমা দেওয়া মান পরে ব্যবহার করা হয়, তার আরো জ্ঞান প্রয়োজন। অটোমেটেড ওয়েব অ্যাপ্লিকেশন নিরাপত্তা স্ক্যানারগুলি, এই ধরনের এসকিউএল ইনজেকশন সহজে শনাক্ত করে না এবং ম্যানুয়ালভাবে নির্দেশ দেওয়ার দরকার হতে পারে, কোথায় তথ্যপ্রমাণের জন্য চেক করতে হবে, যেখানে এই ধরনের চেষ্টা করা হচ্ছে।

প্রশমন 
এসকিউএল ইনজেকশন একটি সুপরিচিত আক্রমণ এবং সহজে সরল পদক্ষেপ দ্বারা আটকানো সম্ভব। টকটকের উপর ২০১৫ সালে এসকিউএল ইনজেকশনের একটি আপাত হামলার পর, বিবিসির রিপোর্ট নিরাপত্তা বিশেষজ্ঞরা স্তম্ভিত হন, যে এই ধরনের একটি বৃহৎ কোম্পানিও এটার দ্বারা ঝুঁকিপ্রবন হতে পারে।

প্যারামিটারাইসড বিবৃতি 

সবচেয়ে উন্নত প্ল্যাটফর্মগুলিতে, প্যারামিটারযুক্ত বিবৃতি যেগুলি প্যারামিটার দ্বারা কাজ করে সেটির বিবৃতিতে ব্যবহারকারীর ইনপুট এম্বেডিং/সন্নিবদ্ধ করার পরিবর্তে (কখনও কখনও বলা হয় প্লেসহোল্ডার বা ব্লাইন্ড ভেরিয়েব্‌ল গুলি) ব্যবহার করা যেতে পারে। একটি প্লেসহোল্ডার, একটি অযৌক্তিক এসকিউএল টুকরা নয় শুধুমাত্র উল্লেখিত টাইপের/ধরনের মান সংরক্ষণ করতে পারে। অতএব এসকিউএল ইনজেকশন কেবল একটি অদ্ভুত (এবং সম্ভবত অবৈধ) পরামিতি মান হিসাবে গণ্য করা হবে।

অনেক ক্ষেত্রে, এসকিউএল স্টেটমেন্ট নির্দিষ্ট এবং প্রতিটি প্যারামিটার এক একটি ভেরিএব্‌ল, একটি টেবিল নয়। ব্যবহারকারীর ইনপুট তখন একটি প্যারামিটারে নির্ধারিত(আবদ্ধ) হয়।

কোডিং পর্যায়ে প্রয়োগ 
অবজেক্ট রিলেশনাল ম্যাপিং ব্যবহার করে লাইব্রেরিগুলি এসকিউএল কোড লেখার প্রয়োজন এড়ায়। তখন কার্যকরীভাবে ORM লাইব্রেরী অবজেক্ট ওরিয়েন্টেড কোড থেকে পরামিতিযুক্ত এসকিউএল স্টেটমেন্ট উৎপন্ন করবে।

এড়ান 

ইনজেকশন থেকে রক্ষা পাবার একটি সহজবোধ্য, যদিও ত্রুটি-প্রবণ পথ হল সেইসব অক্ষর না ব্যবহার করা যেগুলির SQL এ একটি বিশেষ মানে হয়। একটি SQL DBMS এর জন্য প্রয়োজনীয় নির্দেশাবলী সহায়িকায় ব্যাখ্যা করা আছে যে, কোন অক্ষরগুলির একটি বিশেষ অর্থ আছে, যা অক্ষরগুলির একটি বিস্তৃত কালোতালিকা তৈরির মঞ্জুরি প্রদান করে সেগুলির অনুবাদের প্রয়োজন। উদাহরণ হিসেবে বলা যায়, একটি বৈধ এসকিউএল স্ট্রিং লিটারাল গঠনের জন্য, একটি প্যারামিটারে, একটি একক উদ্ধৃতি ( ') প্রতিটি বারের জন্য দুটি একক উদ্ধৃতি () দ্বারা প্রতিস্থাপন করা উচিত। উদাহরণস্বরূপ, পিএইচপি তে SQL কোয়েরি পাঠানোর আগে, সাধারনত প্যারামিটারগুলি এড়াতে; mysqli_real_escape_string(); ফাংশন ব্যবহার করা হয় :

$mysqli = new mysqli('hostname', 'db_username', 'db_password', 'db_name');
$query = sprintf("SELECT * FROM `Users` WHERE UserName='%s' AND Password='%s'",
                  $mysqli->real_escape_string($username),
                  $mysqli->real_escape_string($password));
$mysqli->query($query);

এই ফাংশনটি অক্ষরের আগে ব্যাকস্ল্যাশ শুরুতে যোগ করে:\x00, \n, \r, \, ', " and \x1a।
এই ফাংশনটি সাধারনত মাইএসকিউএল -এ একটি কোয়েরি পাঠানোর আগে ডেটা সুরক্ষিত করতে ব্যবহৃত হয়।  পিএইচপিতে বিভিন্ন ডাটাবেসের ধরনের জন্য অন্যান্য ফাংসানগুলি আছে যেমন PostgreSQL এর জন্য pg_escape_string()। ফাংশন addslashes(string $str) অক্ষর এড়ানোর জন্য কাজ করে, এবং পিএইচপিতে যেখানে এস্কেপিং ফাংশানটি নেই সেখানে ডাটাবেস উপর কুয়েরীর জন্য বিশেষভাবে ব্যবহার করা হয়। এটি ডাটাবেসের কুয়েরীগুলিতে উদ্ধৃত করা প্রয়োজনীয় অক্ষরের আগে, ব্যাকস্ল্যাশের সঙ্গে একটি স্ট্রিং ফেরৎ দেয়। এই অক্ষরগুলি হল একক উদ্ধৃতি ( '), ডবল উদ্ধৃতি ("), ব্যাকস্ল্যাশ (\) এবং NUL (নাল বাইট)।

নিয়মিতভাবে এসকিউএল এ স্ট্রিং এড়ান, ত্রুটিপ্রবণ কারণ একটি প্রদত্ত স্ট্রিং কে এড়ান ভুলে যাওয়া স্বাভাবিক। ইনপুটকে নিরাপদ করার জন্য একটি স্বচ্ছ স্তর তৈরি করলে, যদি এটা সম্পূর্ণভাবে নির্মূল নাও হয়, ত্রুটি-প্রবণতা কমান যায়।

 প্যাটার্ন চেক 

পূর্ণসংখ্যা, ফ্লোট বা বুলিয়ান, স্ট্রিং পরামিতিগুলি পরীক্ষা করা সম্ভব যদি তাদের মান প্রদত্ত টাইপের জন্য বৈধ প্রতিরূপ হয়। স্ট্রিংসগুলি কিছু জটিল প্যাটার্ন (তারিখ, UUID, শুধুমাত্র আলফানিউমেরিক ইত্যাদি) অনুসরণ করলে সেই প্যাটার্নের সঙ্গে মিলিয়ে পরীক্ষা করা সম্ভব হবে।

 ডাটাবেস অনুমতি 

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

deny select on sys.sysobjects to webdatabaselogon;
deny select on sys.objects to webdatabaselogon;
deny select on sys.tables to webdatabaselogon;
deny select on sys.views to webdatabaselogon;
deny select on sys.packages to webdatabaselogon;

 উদাহরণ 
 ফেব্রুয়ারি ২০০২ সালে, জেরেমিয়া জ্যাকস আবিষ্কার করেন যে গেস.কম একটি SQL ইনজেকশন আক্রমণপ্রবন ছিল, যাতে যে কারোর সাইটের গ্রাহক ডাটাবেসের মধ্যে ২,০০,০০০+ নাম, ক্রেডিট কার্ড নম্বর এবং মেয়াদ শেষের তারিখের সম্পূর্ণ তথ্য বের করার URL টি সঠিকভাবে-তৈরি করতে পারার অনুমতি ছিল।
 ১ নভেম্বর, ২০০৫ তারিখে, একটি কিশোর হ্যাকার টেক উদ্দিষ্ট গ্রুপ থেকে একটি তাইওয়ানীয় তথ্য নিরাপত্তা পত্রিকার সাইটে বিনা অনুমতিতে প্রবেশ এবং গ্রাহকদের তথ্য চুরি করার জন্য এসকিউএল ইনজেকশন ব্যবহার করে।
 জানুয়ারী ১৩, ২০০৬ তারিখে, রাশিয়ান কম্পিউটার অপরাধীরা, একটি রোড আইল্যান্ড সরকারের ওয়েবসাইটে ঢুকে সেই সব ব্যক্তির ক্রেডিট কার্ড তথ্য চুরি করে যারা রাষ্ট্র সংস্থাগুলির সঙ্গে অনলাইন ব্যবসা করেছিল।
 মার্চ ২৯, ২০০৬, একটি হ্যাকার ভারত সরকারের একটি আধিকারিক পর্যটন সাইটের SQL ইনজেকশনের একটি ঝুঁকি আবিষ্কার করে।
 জুন ২৯, ২০০৭, একটি কম্পিউটার অপরাধী এসকিউএল ইনজেকশন ব্যবহার করে মাইক্রোসফট যুক্তরাজ্য ওয়েবসাইটকে অপদস্থ করে। যুক্তরাজ্যের ওয়েবসাইট দ্য রেজিস্টার'' মাইক্রোসফটের একজন মুখপাত্রের, সমস্যাটি স্বীকারের উদ্ধৃতি দেয়।
 ১৯ সেপ্টেম্বর, ২০০৭ এবং ২৬ জানুয়ারী, ২০০৯ তুর্কি হ্যাকার গ্রুপ "m0sted" যথাক্রমে এমসিআলেস্টার আর্মি গোলাবারুদ কারখানা ও মার্কিন যুক্তরাষ্ট্র আর্মি কর্পস ইঞ্জিনিয়ার্স মাইক্রোসফট এর SQL সার্ভার কাজে লাগিয়ে ওয়েব সার্ভার হ্যাক করার জন্য এসকিউএল ইনজেকশন ব্যবহার করে।
 জানুয়ারী ২০০৮ সালে অ্যাপ্লিকেশন কোড যেটি মাইক্রোসফট এসকিউএল সার্ভারকে ডাটাবেসের স্টোর/ভাণ্ডার হিসাবে ব্যবহার করে সেই কোডটির একটি ঝুঁকিকে কাজে লাগিয়ে একটি স্বয়ংক্রিয় এসকিউএল ইনজেকশন আক্রমণ দ্বারা দশ হাজার কম্পিউটার আক্রান্ত হয়।
 জুলাই ২০০৮, ক্যাসপারস্কির মালয়েশিয় সাইটটি "m0sted" হ্যাকার গ্রুপ এসকিউএল ইনজেকশন ব্যবহার করে হ্যাক করে।
 ১৩ এপ্রিল ২০০৮, ওকলাহোমা-র যৌন এবং হিংসাত্মক অপরাধীর নিবন্ধীকরণ ওয়েবসাইট "রুটিন রক্ষণাবেক্ষণের" জন্য বন্ধ করে দেয়, এটি জানার পর যে যৌন অপরাধীদের সঙ্গে সংযুক্ত ১০,৫৯৭ টি সামাজিক নিরাপত্তা নম্বর একটি SQL ইনজেকশন আক্রমণের মাধ্যমে ডাউনলোড করা হয়েছে।
 মে ২০০৮ সালে, চীনের একটি সার্ভার ফার্ম, একটি স্বয়ংক্রিয় এসকিউএল ইনজেকশন টুল আক্রমণে ঝুঁঁকিসম্পন্ন এসকিউএল সার্ভার ওয়েবসাইটগুলি শনাক্ত করতে, গুগল সার্চ ইঞ্জিনে স্বয়ংক্রিয় ক্যোয়ারীগুলি ব্যবহার করে।
 ২০০৮ সালে, অন্তত এপ্রিল থেকে আগস্টে একটি লাগাতার আক্রমণ, মাইক্রোসফট এর আইআইএস ওয়েব সার্ভার এবং এস কিউ এল সার্ভার ডাটাবেস সার্ভারের, এসকিউএল ইনজেকশন ঝুঁকিটি নিজেদের স্বার্থে ব্যবহার শুরু করে। আক্রমণটিতে একটি টেবিল বা কলামের নাম অনুমানের প্রয়োজন হয় না এবং একটি একক রিকোয়েস্ট, সমস্ত টেবিলের, সমস্ত টেক্সট কলাম করাপ্ট/খারাপ করে দিতে পারে একটি এইচটিএমএল স্ট্রিং যেটি রেফারেন্স করে একটি ম্যালওয়্যার জাভাস্ক্রিপ্ট ফাইল, প্রতিটি মান বদল করে।যে ডাটাবেসের মান পরে একটি ওয়েবসাইট পরিদর্শকের কাছে প্রদর্শিত হতে থাকে, তখন স্ক্রিপ্টটি একজন পরিদর্শকের সিস্টেম নিয়ন্ত্রণ অর্জন করার বেশ কয়েকবার চেষ্টা করে। কাজে লাগানো ওয়েব পৃষ্ঠার সংখ্যার আনুমানিক ৫০০,০০০।
 আগস্ট ১৭, ২০০৯, ইউনাইটেড স্টেটস ডিপার্টমেন্টেের বিচারপতি একজন আমেরিকান নাগরিক, আলবার্ট গঞ্জালেজ, এবং দুটি নামহীন রাশিয়ানকে একটি SQL ইনজেকশন আক্রমণ ব্যবহার করে ১৩০ মিলিয়ন ক্রেডিট কার্ড সংখ্যার চুরিতে অভিযুক্ত করেন। জনশ্রুতি "আমেরিকান ইতিহাসে পরিচয় প্রতারণার সবচেয়ে বড় ঘটনা", চোর তাদের পেমেন্ট প্রসেসিং সিস্টেমের খোঁজ খবর নেওয়ার পর বেশকিছু কর্পোরেট ক্ষতিগ্রস্তদের কার্ডগুলি চুরি করে। ক্ষতিগ্রস্ত কোম্পানীর মধ্যে ছিল ক্রেডিট কার্ড প্রসেসর হার্টল্যান্ড পেমেন্ট সিস্টেম, কনভেনিয়েন্স স্টোর চেইন ৭-ইলেভেন এবং সুপারমার্কেট চেইন Hannafordহানফোর্ড ব্রাদার্স।
 ডিসেম্বর ২০০৯ সালে একটি আক্রমণকারী একটি SQL ইনজেকশন আক্রমণ ব্যবহার করে এনক্রিপশন বিহীন ব্যবহারকারীর নাম এবং প্রায় ৩২ মিলিয়ন ব্যবহারকারীদের পাসওয়ার্ড আছে এমন রকইউ প্লেইন টেক্সট ডাটাবেসে ঢুকে পড়ে।
 জুলাই ২০১০, একটি দক্ষিণ আমেরিকান নিরাপত্তা গবেষক যারা করার হ্যান্ডেল "Ch Russo" ব্যবহার করেন জনপ্রিয় বিটটরেন্ট সাইট পাইরেট বে থেকে সংবেদনশীল ব্যবহারকারীর তথ্য প্রাপ্ত করেন। তিনি সাইটের প্রশাসকীয় নিয়ন্ত্রণ প্যানেলে অ্যাক্সেস পেয়েছিলেন এবং একটি এসকিউএল ইনজেকশন দুর্বলতার সাহায্যে আইপি আড্রেস, MD5 পাসওয়ার্ড হ্যাশ এবং রেকর্ড সহ যা টরেন্ট স্বতন্ত্র ব্যবহারকারীরা আপলোড করেছেন সেই সব সক্রিয় ব্যবহারকারীর অ্যাকাউন্ট তথ্য সংগ্রহ করতে পেরেছিলেন।
 জুলাই ২৪ থেকে ২৬ থেকে, ২০১০, জাপান এবং চীন থেকে আক্রমণকারীরা নিও বিটে ওসাকা-ভিত্তিক একটি কোম্পানী যা একটি বৃহৎ অনলাইন সুপারমার্কেট সাইট চালায়, তাতে গ্রাহকদের ক্রেডিট কার্ড তথ্য অ্যাক্সেস লাভ করতে একটি SQL ইনজেকশন প্রয়োগ করে। এছাড়াও হামলাটি zumiya কো, Maruetsu ইনকর্পোরেটেড, এবং Ryukyu Jusco কোং সহ সাত ব্যবসায়িক সুপারমার্কেট চেইন অংশীদার কে প্রভাবিত করে। খবর অনুসারে ১২,১৯১ গ্রাহকদের তথ্য চুরি হয়। ১৪ আগস্ট , ২০১০ পর্যন্ত জানানো হয় যে সেখানে ৩০০টির অধিক মামলা হয়েছে যেগুলিতে তৃতীয় পক্ষের দ্বারা ক্রেডিট কার্ড তথ্য ব্যবহৃত হচ্ছে চীন এ জিনিসপত্র কেনা এবং পরিষেবার জন্য ।
 ১৯ সেপ্টেম্বর২০১০ সুইডিশ সাধারণ নির্বাচনের সময়ে ভোটার ভোট লেখনীয় অংশ হিসেবে হাতের লেখা এসকিউএল কমান্ড দ্বারা একটি কোড ইনজেকশনেের প্রচেষ্টা করেছেন। 
 ৮ নভেম্বর, ২০১০ তিনকোড নামে একজন রোমানীয় হ্যাকার এসকিউএল ইনজেকশন ব্যবহার করে ব্রিটিশ রয়াল নেভির ওয়েবসাইটে সমস্যা করেছিল।
 ফেব্রুয়ারি ৫, ২০১১ HBGary, একটি প্রযুক্তি নিরাপত্তা ফার্ম, তাদের জন্য CMS চালিত ওয়েবসাইট একটি এসকিউএল ইনজেকশন ব্যবহার করে LulzSec অবৈধভাবে ঢুকে পড়েছিল।
 মার্চ ২৭, ২০১১, mysql.com, মাইএসকিউএল এর আধিকারিক হোমপৃষ্ঠাতে, একটি হ্যাকার এসকিউএল ব্লাইন্ড ইনজেকশন ব্যবহার করে আপোস করা হয়েছিল। 
 ১১ এপ্রিল, ২০১১, Barracuda নেটওয়ার্ক একটি SQL ইনজেকশন ত্রুটি ব্যবহার করে আপোস করা হয়েছিল। তথ্যের মধ্যে ইমেল ঠিকানা এবং কর্মচারীদের ব্যবহারকারী নাম ছিল।.
 এপ্রিল ২৭, ২০১১, ৪ ঘণ্টায়, ব্রডব্যান্ড রিপোর্ট ওয়েবসাইটে একটি স্বয়ংক্রিয় এসকিউএল ইনজেকশন আক্রমণ হয় তাতে ৯,০০০ সক্রিয় অ্যাকাউন্ট থেকে এলোমেলো ভাবে ৮০০০ অ্যাকাউন্ট এবং ৯০,০০০ পুরানো বা নিষ্ক্রিয় অ্যাকাউন্টে ব্যবহারকারীর নাম / পাসওয়ার্ড জোড়ায় ৮% সঠিক তথ্য বের করে আনতে সক্ষম হয়েছে।
 ১ লা জুন ২০১১ তারিখে, LulzSec দলের "হাক্টিভিস্ট", SQLI ব্যবহার করে দশ লক্ষ ব্যবহারকারীদের ব্যক্তিগত তথ্য অ্যাক্সেস করে যেগুলি সোনির ওয়েবসাইটে প্লেইনটেক্সটে সংরক্ষিত আছে , কুপন, কি ডাউনলোড এবং পাসওয়ার্ডগুলি চুরি করার অভিযোগ ওঠে।
 জুন ২০১১ সালে পিবিএস হ্যাক হলো, সম্ভবত এসকিউএল ইনজেকশন ব্যবহারের মাধ্যমে ; হ্যাকার দ্বারা ব্যবহৃত এসকিউএল ইনজেকশনও চালানোর প্রক্রিয়া এই ইম্পেরভা ব্লগে বর্ণনা করা হয়েছে।
 মে ২০১২ সালে, Wurm অনলাইন, একটি ব্যাপক মাল্টিপ্লেয়ার অনলাইন খেলা জন্য ওয়েবসাইট, যখন সাইট আপডেট হচ্ছে তখন একটি SQL ইনজেকশন থেকে বন্ধ হয়ে যায়।
 জুলাই ২০১২ একটি হ্যাকার গ্রুপ Yahoo থেকে ৪,৫০,০০০ লগইন কেডেন্সিয়াল চুরি করে বলে রিপোর্ট করা হয়েছিল !. অভিযোগ লগইন প্লেইন টেক্সট মধ্যে সংরক্ষিত ছিল এবং একটি ইয়াহু সাবডোমেন, ইয়াহু ভয়েসেস থেকে সেগুলি চুরি করে। দলটি "union- ভিত্তিক এসকিউএল ইনজেকশন প্রকৌশল ব্যবহার করে ইয়াহু নিরাপত্তা লঙ্ঘন করে 
 অক্টোবর ১, ২০১২ তারিখে, "টিম GhostShell" নামক একটি হ্যাকার গ্রুপ হার্ভার্ড, প্রিন্সটন, স্ট্যানফোর্ড, কর্নেল, জনস হপকিন্স, এবং জুরিখ বিশ্ববিদ্যালয়ের সহ ৫৩টি বিশ্ববিদ্যালয়েের ছাত্র, ফ্যাকাল্টি, কর্মচারী এবং প্রাক্তনীর ব্যক্তিগত রেকর্ড pastebin.com এ প্রকাশ করে। হ্যাকার দাবি করেন যে তারা ইউরোপে শিক্ষা আইনে দুঃখজনক পরিবর্তন এবং মার্কিন যুক্তরাষ্ট্রে শিক্ষার খরচ বৃদ্ধি "আজকের শিক্ষায় করা পরিবর্তনগুলির প্রতি সচেতনতা বাড়াতে" চেষ্টা করছিলেন।
 ফেব্রুয়ারি ২০১৩সালে, মালদিভিয়ান হ্যাকারসের একটি গোষ্ঠী, ওয়েবসাইট "ইউএন-মালদ্বীপ" এসকিউএল ইনজেকশন ব্যবহার করে হ্যাক করে।
 ২৭ জুন,২০১৩ তারিখে, হ্যাকার গ্রুপ "রেঢ্যাক" ইস্তানবুল প্রশাসন সাইটেে ঢুকে পড়ে। তারা দাবি করেন, তাঁঁরা জল, গ্যাস, ইন্টারনেট, বিদ্যুৎ এবং টেলিফোন কোম্পানিতে জনগণের ঋণ নিশ্চিহ্ন করতে পেরেছেন।উপরন্তু, পরদিন খুব সকালে তারা প্রশাসক ব্যবহারকারীর নাম এবং পাসওয়ার্ড অন্যান্য নাগরিকদের লগ ইন করে তাদের ঋণ পরিষ্কার করার জন্য প্রকাশিত করে। তারা টুইটার থেকে সংবাদটি ঘোষণা করে।
 নভেম্বর ৪, ২০১৩ তারিখে, হ্যাক্টিভিস্ট দল "র‍্যাপ্টর সোয়াগ" চীনা চেম্বার ইন্টারন্যাশনাল কমার্সে একটি এসকিউএল ইনজেকশন আক্রমণ ব্যবহার করে ৭১টি চীনের সরকারী ডাটাবেস আপোস করার ব্যাপারে অভিযুক্ত হয়। ফাঁস তথ্য বেনামী সহযোগিতায় প্রকাশ্যে পোস্ট করা হয়েছিল। 
 ফেব্রুয়ারি ২, ২০১৪ তারিখে, এভিএস টিভির ৪০,০০০ অ্যাকাউন্ট @deletesec নামক একটি হ্যাকিং গ্রুপ ফাঁস করে ছিল।
 ফেব্রুয়ারি ২১, ২০১৪ তারিখে, জাতিসংঘ ইন্টারনেট গভর্ন্যান্স ফোরামের ৩,২১৫ অ্যাকাউন্টের বিশদ বিবরণ ফাঁস ছিল।
 ফেব্রুয়ারি ২১, ২০১৪ , @deletesec নামক একটি গোষ্ঠীর হ্যাকাররা হ্যাকার নিরাপত্তার ঝুঁকি খবর করার জন্য তাদেরকে গ্রেফতার করা হবে হুমকি পাওয়ার পর স্পাইরল আন্তর্জাতিক হ্যাক করে। এই সংঘাতের ফলে ৭০,০০০ ব্যবহারকারী বিশদ তথ্য উন্মুক্ত হয়ে পড়ে।
 ৭ ই মার্চ, ২০১৪ তারিখে, জনস হপকিন্স বিশ্ববিদ্যালয়ের কর্মকর্তারা প্রকাশ্যে ঘোষণা করে যে তাদের জৈব চিকিৎসা প্রকৌশল সার্ভার "Hooky" নামে এবং হ্যাকটিভিস্ট দল "RaptorSwag" সঙ্গে সংযুক্ত নাম প্রকাশে অনিচ্ছুক একজন হ্যাকার দ্বারা সম্পন্ন একটি SQL ইনজেকশন হামলার শিকার হয়ে উঠেছে। হ্যাকাররা ৮৭৮ ছাত্র এবং কর্মীদের ব্যক্তিগত বিবরণ আপোস করে এক সংবাদ বিজ্ঞপ্তিতে এবং ইন্টারনেটে তথ্যগুলি ফাঁস করে।
 আগস্ট ২০১৪ সালে, মিলওয়াকি ভিত্তিক কম্পিউটার নিরাপত্তা কোম্পানি হোল্ড সিকিউরিটি প্রকাশ করে তারা এসকিউএল ইনজেকশনের মাধ্যমে প্রায় ৪,২০,০০০ ওয়েবসাইট থেকে গোপনীয় তথ্য চুরির ঘটনাটি অনাবৃত করেছেন। নিউ ইয়র্ক টাইমস একটি নিরাপত্তা বিশেষজ্ঞ নিয়োগ করে দাবি চেক করতে এই খোঁজ নিশ্চিত করে।
 অক্টোবর ২০১৫, একটি এসকিউএল ইনজেকশন আক্রমণ ব্রিটিশ টেলিযোগাযোগ প্রতিষ্ঠান টক টক এর সার্ভার থেকে ১৫৬,৯৫৯ গ্রাহকদের ব্যক্তিগত বিবরণ চুরি করার জন্য ব্যবহার করা হয়েছিল।

গণসংস্কৃতিতে 
 ২০১২ সালে প্রকাশিত জে.কে. রাউলিং এর দা ক্যাসুয়াল ভাকেন্সির উপন্যাসের সহপ্লটটি তৈরি, এসকিউএল ইনজেকশন মাধ্যমে ওয়েব সাইটের অননুমোদিত লগইন ভিত্তি করে।

 একটি xkcd কার্টুন একটি অক্ষর "Robert'); DROP TABLE students;--" একটি এসকিউএল ইনজেকশন চালানর নামকরণ করে। এই কার্টুনের ফলস্বরূপ, এসকিউএল ইনজেকশন কখনও কখনও অনাড়ম্বরভাবে 'ববি টেবিল' উল্লেখিত হয়।
 ২০১৪ সালে, স্প্যামারদের বট তৈরির অপারেশন ব্যাহত করতে একটি প্রয়াস হিসাবে পোল্যান্ডে একজন ব্যক্তি আইনত তার ব্যবসার নতুন নামকরণ করেন দেরিউজ Jakubowski x'; DROP TABLE users; SELECT '1 '
 ২০১৫ গেম হ্যাকনেটের SQL_MemCorrupt নামক একটি হ্যাকিং প্রোগ্রাম আছে। এটাতে একটা টেবিল এন্ট্রি ইঞ্জেক্সানের মাধ্যমে একটি SQL ডাটাবেস একটি দুর্নীতি ত্রুটি ঘটায় যাতে SQL ডাটাবেস ক্র্যাশ এবং কোর ডাম্প করে।

আরও দেখুন 

 কোড ইঞ্জেকশান
 ক্রস সাইট স্ক্রিপ্টিং
 মেটাস্প্লয়েট প্রকল্প
 ওপেন ওয়েব অ্যাপ্লিকেশন সিকিউরিটি প্রকল্প
 এনটিটি
 অনিয়ন্ত্রিত পঙ্‌ক্তি বিন্যাস
 ডব্লিউথ্রিএএফ/ওয়েব অ্যাপ্লিকেশন আক্রমণ ও নিরীক্ষণ কাঠামো
 ওয়েব অ্যাপ্লিকেশন নিরাপত্তা

তথ্যসূত্র

বহিঃসংযোগ 
 ম্যানুয়াল এসকিউএল ইনজেকশন টিউটোরিয়াল  অজয় দেবগন দ্বারা
 এসকিউএল ইনজেকশন উইকি
 WASC থ্রেট বিভাগ - এসকিউএল ইনজেকশন প্রবেশ, ওয়েব অ্যাপ্লিকেশন নিরাপত্তা সাহচর্য দ্বারা।
 কেন এসকিউএল ইনজেকশন চলে যায় না, স্টুয়ার্ট থমাস দ্বারা।
 এসকিউএল ইনজেকশন প্রতিরোধ চিট শিট,OWASP দ্বারা।
 এসকিউএল ম্যাপ: স্বয়ংক্রিয় এসকিউএল ইনজেকশন এবং ডাটাবেস অধিগ্রহণ সঙ্ক্রান্ত সরঞ্জাম
 এসকিউএল ইনজেকশন উপর এসডিএলের দ্রুত নিরাপত্তা উল্লেখগুলি বালা নিরুমাল্লা দ্বারা।
 কীভাবে নিরাপত্তা সংক্রান্ত ত্রুটিগুলি কাজ করছে: এসকিউএল ইনজেকশন
 এসকিউএল ইনজেকশন চিট শিট নেটস্পার্কার দ্বারা

প্রোগ্রামিং ভাষা
এসকিউএল