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 ڪالن کي پرچم ڪري ٿو.
