FixVibe
Covered by FixVibecritical

SQL انجيل: غير مجاز ڊيٽابيس جي رسائي کي روڪڻ

SQL انجيڪشن (SQLi) هڪ نازڪ خطرو آهي جتي حملو ڪندڙ هڪ ايپليڪيشن جي ڊيٽابيس جي سوالن سان مداخلت ڪندا آهن. بدسلوڪي SQL نحو داخل ڪرڻ سان، حملو ڪندڙ تصديق کي نظرانداز ڪري سگھن ٿا، حساس ڊيٽا ڏسي سگھن ٿا جهڙوڪ پاسورڊ ۽ ڪريڊٽ ڪارڊ جا تفصيل، يا ان کان سواءِ بنيادي سرور سان سمجھوتو ڪري سگھن ٿا.

CWE-89

SQL انجکشن جو اثر

SQL انجيڪشن (SQLi) هڪ حملي ڪندڙ کي انهن سوالن سان مداخلت ڪرڻ جي اجازت ڏئي ٿي جيڪا هڪ ايپليڪيشن پنهنجي ڊيٽابيس [S1] تي ٺاهي ٿي. بنيادي اثر ۾ حساس ڊيٽا تائين غير مجاز رسائي شامل آهي جهڙوڪ يوزر پاسورڊ، ڪريڊٽ ڪارڊ جا تفصيل، ۽ ذاتي معلومات [S1].

ڊيٽا جي چوري کان ٻاهر، حملو ڪندڙ اڪثر ڪري سگھن ٿا تبديل ڪري سگھن ٿا يا ڊيٽابيس جي رڪارڊ کي ختم ڪري، ايپليڪيشن جي رويي ۾ مسلسل تبديلين يا ڊيٽا جي نقصان جي ڪري [S1]. تيز شدت واري حالتن ۾، SQLi کي وڌائي سگھجي ٿو پٺتي پيل انفراسٽرڪچر کي سمجھوتو ڪرڻ لاءِ، سروس جي رد ڪرڻ جي حملن کي چالو ڪرڻ، يا تنظيم جي سسٽم ۾ مسلسل پٺتي پيل دروازو مهيا ڪرڻ لاءِ [S1]ZXCVFIXVIXVIXTOKEN2

روٽ سبب: غير محفوظ ان پٽ هينڊلنگ

SQL انجيڪشن جو بنيادي سبب SQL ڪمانڊ [S2] ۾ استعمال ٿيل خاص عناصر جي غلط غير جانبداري آھي. اهو تڏهن ٿئي ٿو جڏهن هڪ ايپليڪيشن SQL سوالن کي ٺاهيندي آهي خارجي طور تي متاثر ٿيل ان پٽ کي سڌو سنئون سوال اسٽرنگ [S1][S2] ۾.

ڇاڪاڻ ته ان پٽ صحيح طريقي سان پڇا ڳاڇا جي ڍانچي کان الڳ نه ڪيو ويو آهي، ڊيٽابيس مترجم صارف ان پٽ جي حصن کي SQL ڪوڊ طور استعمال ڪري سگھي ٿو بجاءِ ان کي لفظي ڊيٽا [S2]. هي ڪمزوري هڪ سوال جي مختلف حصن ۾ ظاهر ٿي سگهي ٿي، بشمول SELECT بيان، INSERT قدر، يا UPDATE بيان [S1].

ڪنڪريٽ فيڪس ۽ گھٽتائي

استعمال ڪريو Parameterized سوال

SQL انجيڪشن کي روڪڻ لاء سڀ کان وڌيڪ مؤثر طريقو پيٽرولر ٿيل سوالن جو استعمال آهي، پڻ تيار ڪيل بيانن جي طور تي سڃاتو وڃي ٿو [S1]. ڳنڍڻ واري تارن جي بدران، ڊولپرز کي منظم ميڪانيزم استعمال ڪرڻ گهرجي جيڪي ڊيٽا ۽ ڪوڊ [S2] جي الڳ ٿيڻ کي لاڳو ڪن.

گهٽ ۾ گهٽ استحقاق جو اصول

ايپليڪيشنن کي ڊيٽابيس سان ڳنڍڻ گهرجي انهن جي ڪمن لاءِ گهربل تمام گهٽ استحقاق استعمال ڪندي [S2]. هڪ ويب ايپليڪيشن اڪائونٽ کي انتظامي استحقاق نه هجڻ گهرجي ۽ ان جي فنڪشن [S2] لاءِ ضروري مخصوص جدولن يا عملن تائين محدود هجڻ گهرجي.

ان پٽ جي تصديق ۽ انڪوڊنگ

جڏهن ته parameterization لاء متبادل نه آهي، ان پٽ جي تصديق فراهم ڪري ٿي دفاع ۾-کوٽائي [S2]. ايپليڪيشنن کي استعمال ڪرڻ گهرجي هڪ قبول-سڃاڻل-سٺي حڪمت عملي، تصديق ڪندي ته ان پٽ متوقع قسمن، ڊگھائي، ۽ فارميٽ [S2] سان ملن ٿا.

ڪيئن FixVibe ان لاءِ ٽيسٽ ڪري ٿو

FixVibe اڳ ۾ ئي گيٽ ٿيل active.sqli اسڪينر ماڊل ذريعي SQL انجيڪشن کي ڍڪي ٿو. فعال اسڪين صرف ڊومين جي ملڪيت جي تصديق ۽ تصديق کانپوءِ هلندا آهن. چيڪ هڪ ئي اصل GET جي آخر پوائنٽس کي پڇا ڳاڇا جي پيٽرولن سان ڪري ٿو، هڪ بنيادي جواب قائم ڪري ٿو، SQL-مخصوص بولين بي ضابطگين کي ڳولي ٿو، ۽ صرف ڪيترن ئي دير جي ڊيگهه تي وقت جي تصديق کان پوء هڪ ڳولڻ جي رپورٽ ڪري ٿو. ريپوزٽري اسڪين پڻ مدد ڪن ٿا بنيادي سبب کي پڪڙڻ ۾ اڳ ۾ code.web-app-risk-checklist-backfill، جيڪو ٽيمپليٽ انٽرپوليشن سان ٺهيل خام SQL ڪالن کي پرچم ڪري ٿو.