پیرامیٹرائزڈ ایس کیو ایل، جسے تیار شدہ بیانات بھی کہا جاتا ہے، ویب ایپلیکیشن ڈیولپمنٹ میں ایس کیو ایل انجیکشن کی کمزوریوں کو کم کرنے کے لیے استعمال ہونے والی تکنیک ہے۔ اس میں ایس کیو ایل کے سوالات میں پلیس ہولڈرز کا استعمال شامل ہے جو بعد میں صارف کی طرف سے فراہم کردہ اقدار سے بدل دیے جاتے ہیں۔ استفسار کی منطق کو صارف کے ان پٹ سے الگ کرکے، پیرامیٹرائزڈ SQL نقصان دہ SQL کوڈ کو عمل میں لانے سے روکنے میں مدد کرتا ہے۔
جب کوئی ویب ایپلیکیشن پیرامیٹرائزڈ ایس کیو ایل کا استعمال کرتی ہے، تو کسی بھی صارف کے ان پٹ کو شامل کرنے سے پہلے ایس کیو ایل کا سوال سب سے پہلے ایپلیکیشن سرور کے ذریعے تیار کیا جاتا ہے۔ استفسار ڈیٹا بیس سرور کو صارف کی طرف سے فراہم کردہ اقدار کے پلیس ہولڈرز کے ساتھ بھیجا جاتا ہے۔ ان پلیس ہولڈرز کو عام طور پر سوالیہ نشانات یا نامزد پیرامیٹرز سے ظاہر کیا جاتا ہے۔ ڈیٹا بیس سرور پھر اصل قدروں پر غور کیے بغیر استفسار کو مرتب اور بہتر بناتا ہے۔
استفسار تیار ہوجانے کے بعد، صارف کا ان پٹ پلیس ہولڈرز کا پابند ہوجاتا ہے، ان کی جگہ مناسب قدریں لگاتا ہے۔ بائنڈنگ عمل اس بات کو یقینی بناتا ہے کہ صارف کے ان پٹ کو ڈیٹا کے طور پر سمجھا جاتا ہے نہ کہ قابل عمل کوڈ کے طور پر۔ استفسار کی منطق اور صارف کے ان پٹ کی یہ علیحدگی SQL انجیکشن حملوں کو روکتی ہے کیونکہ ڈیٹا بیس سرور جانتا ہے کہ صارف کے ان پٹ کو ڈیٹا کے طور پر سمجھا جانا چاہئے، نہ کہ استفسار کے ڈھانچے کے حصے کے طور پر۔
پیرامیٹرائزڈ ایس کیو ایل کا استعمال کرکے، ویب ایپلیکیشنز ایس کیو ایل انجیکشن کی کمزوریوں کو مؤثر طریقے سے کم کرسکتی ہیں۔ یہاں اس نقطہ نظر کے کچھ اہم فوائد ہیں:
1. ایس کیو ایل انجیکشن کے خلاف تحفظ: پیرامیٹرائزڈ ایس کیو ایل اس بات کو یقینی بناتا ہے کہ صارف کے ان پٹ کو ڈیٹا کے طور پر سمجھا جائے، جس سے نقصان دہ SQL کوڈ انجیکشن کے امکان کو ختم کیا جائے۔ جیسا کہ صارف کے ان پٹ کو ایک قدر کے طور پر سمجھا جاتا ہے، یہاں تک کہ اگر اس میں خصوصی حروف یا ایس کیو ایل نحو شامل ہوں، تو اسے استفسار کے ڈھانچے کے حصے کے طور پر نہیں سمجھا جائے گا۔
مثال کے طور پر، پیرامیٹرائزیشن کے بغیر درج ذیل کمزور SQL استفسار پر غور کریں:
SELECT * FROM users WHERE username = 'admin' AND password = '<user_input>';
ایک حملہ آور اس استفسار سے فائدہ اٹھا سکتا ہے `' یا '1'='1' -` صارف کے ان پٹ کے طور پر داخل کر کے، مؤثر طریقے سے پاس ورڈ چیک کو نظرانداز کر کے۔ تاہم، پیرامیٹرائزڈ SQL کا استعمال کرتے ہوئے، استفسار اس طرح نظر آئے گا:
SELECT * FROM users WHERE username = 'admin' AND password = ?;
یوزر ان پٹ پلیس ہولڈر کا پابند ہے، کسی بھی SQL انجیکشن کی کوششوں کو روکتا ہے۔
2. بہتر کارکردگی: پیرامیٹرائزڈ ایس کیو ایل کے سوالات ایک بار تیار کیے جا سکتے ہیں اور مختلف اقدار کے ساتھ متعدد بار عمل میں لایا جا سکتا ہے۔ اس سے جب بھی استفسار کیا جاتا ہے تو اسے پارس کرنے اور اسے بہتر بنانے کے اوور ہیڈ کو کم کر دیتا ہے۔ تیار کردہ بیانات کو ڈیٹا بیس سرور کے ذریعے کیش کیا جا سکتا ہے، جس کے نتیجے میں کثرت سے کیے جانے والے سوالات کی کارکردگی بہتر ہوتی ہے۔
3. نحو کی غلطیوں کی روک تھام: پیرامیٹرائزڈ ایس کیو ایل غلط طریقے سے فارمیٹ شدہ صارف کے ان پٹ کی وجہ سے نحوی غلطیوں کو روکنے میں مدد کرتا ہے۔ ڈیٹا بیس سرور صارف کے ان پٹ کو ڈیٹا کے طور پر دیکھتا ہے، اس بات کو یقینی بناتا ہے کہ یہ استفسار کے ڈھانچے میں مداخلت نہ کرے۔
4. ڈیٹا بیس خلاصہ: پیرامیٹرائزڈ ایس کیو ایل بہتر ڈیٹا بیس تجرید کی اجازت دیتا ہے، کیونکہ ایپلیکیشن کوڈ کو بنیادی ڈیٹا بیس کی مخصوص نحو یا ساخت سے آگاہ ہونے کی ضرورت نہیں ہے۔ یہ ایپلی کیشن منطق میں ترمیم کیے بغیر مختلف ڈیٹا بیس سسٹمز کے درمیان سوئچ کرنا آسان بناتا ہے۔
پیرامیٹرائزڈ ایس کیو ایل ویب ایپلیکیشنز میں ایس کیو ایل انجیکشن کی کمزوریوں کو کم کرنے کے لیے ایک طاقتور تکنیک ہے۔ استفسار کی منطق کو صارف کے ان پٹ سے الگ کرکے اور صارف کی فراہم کردہ قدروں کو ڈیٹا کے طور پر دیکھ کر، پیرامیٹرائزڈ SQL SQL انجیکشن حملوں کے خلاف ایک مضبوط دفاع فراہم کرتا ہے۔ اس کے فوائد میں ایس کیو ایل انجیکشن کے خلاف تحفظ، بہتر کارکردگی، نحوی غلطیوں کی روک تھام، اور ڈیٹا بیس کا بہتر خلاصہ شامل ہے۔
سے متعلق دیگر حالیہ سوالات اور جوابات EITC/IS/WASF ویب ایپلیکیشنز سیکیورٹی کے بنیادی اصول:
- بازیافت میٹا ڈیٹا کی درخواست کے ہیڈر کیا ہیں اور انہیں ایک ہی اصل اور کراس سائٹ کی درخواستوں کے درمیان فرق کرنے کے لیے کیسے استعمال کیا جا سکتا ہے؟
- قابل اعتماد قسمیں کس طرح ویب ایپلیکیشنز کے حملے کی سطح کو کم کرتی ہیں اور حفاظتی جائزوں کو آسان بناتی ہیں؟
- قابل اعتماد قسموں میں پہلے سے طے شدہ پالیسی کا مقصد کیا ہے اور اسے غیر محفوظ سٹرنگ اسائنمنٹس کی شناخت کے لیے کیسے استعمال کیا جا سکتا ہے؟
- ٹرسٹڈ ٹائپس API کا استعمال کرتے ہوئے ٹرسٹڈ ٹائپ آبجیکٹ بنانے کا عمل کیا ہے؟
- مواد کی حفاظت کی پالیسی میں قابل اعتماد قسم کی ہدایت DOM پر مبنی کراس سائٹ اسکرپٹنگ (XSS) کی کمزوریوں کو کم کرنے میں کس طرح مدد کرتی ہے؟
- قابل اعتماد قسمیں کیا ہیں اور وہ ویب ایپلیکیشنز میں DOM پر مبنی XSS کی کمزوریوں کو کیسے دور کرتی ہیں؟
- مواد کی حفاظت کی پالیسی (CSP) کراس سائٹ اسکرپٹنگ (XSS) کی کمزوریوں کو کم کرنے میں کس طرح مدد کر سکتی ہے؟
- کراس سائٹ درخواست جعل سازی (CSRF) کیا ہے اور حملہ آوروں کے ذریعہ اس کا فائدہ کیسے اٹھایا جا سکتا ہے؟
- کسی ویب ایپلیکیشن میں XSS کی کمزوری صارف کے ڈیٹا سے کیسے سمجھوتہ کرتی ہے؟
- ویب ایپلیکیشنز میں عام طور پر پائے جانے والے خطرات کی دو اہم کلاسیں کیا ہیں؟
مزید سوالات اور جوابات EITC/IS/WASF ویب ایپلیکیشنز سیکیورٹی کے بنیادی اصولوں میں دیکھیں