SQL ներարկման ազդեցությունը
SQL ներարկումը (SQLi) թույլ է տալիս հարձակվողին միջամտել այն հարցումներին, որոնք դիմումը կատարում է իր տվյալների բազայում [S1]: Առաջնային ազդեցությունը ներառում է չթույլատրված մուտք դեպի զգայուն տվյալներ, ինչպիսիք են օգտվողի գաղտնաբառերը, վարկային քարտի տվյալները և անձնական տվյալները [S1]:
Տվյալների գողությունից բացի, հարձակվողները հաճախ կարող են փոփոխել կամ ջնջել տվյալների բազայի գրառումները՝ հանգեցնելով հավելվածի վարքագծի մշտական փոփոխության կամ տվյալների կորստի [S1]: Բարձր խստության դեպքերում SQLi-ն կարող է ընդլայնվել՝ վտանգելու հետևի ենթակառուցվածքը, հնարավորություն ընձեռելու ծառայության հերքման հարձակումները կամ կազմակերպության համակարգերի մշտական հետնադուռ ապահովելու համար [S1]ZXCVFIXZVIBETOKEN2:
Արմատային պատճառ՝ մուտքագրման անապահով կառավարում
SQL ներարկման հիմնական պատճառը SQL [S2] հրամանում օգտագործվող հատուկ տարրերի ոչ պատշաճ վնասազերծումն է: Սա տեղի է ունենում, երբ հավելվածը կառուցում է SQL հարցումներ՝ միացնելով արտաքին ազդեցությամբ ներածումը ուղղակիորեն հարցման տողի մեջ [S1][S2]:
Քանի որ մուտքագրումը պատշաճ կերպով մեկուսացված չէ հարցման կառուցվածքից, տվյալների բազայի թարգմանիչը կարող է օգտագործել օգտվողի մուտքագրման մասերը որպես SQL կոդ, այլ ոչ թե այն դիտարկել որպես բառացի տվյալ [S2]: Այս խոցելիությունը կարող է դրսևորվել հարցման տարբեր մասերում, ներառյալ SELECT հայտարարությունները, INSERT արժեքները կամ UPDATE հայտարարությունները [S1]:
Կոնկրետ ուղղումներ և մեղմացումներ
Օգտագործեք պարամետրացված հարցումներ
SQL ներարկումը կանխելու ամենաարդյունավետ միջոցը պարամետրացված հարցումների օգտագործումն է, որը նաև հայտնի է որպես պատրաստված հայտարարություններ [S1]: Տողերի միացման փոխարեն մշակողները պետք է օգտագործեն կառուցվածքային մեխանիզմներ, որոնք կպարտադրեն տվյալների բաժանումը և [S2] ծածկագիրը:
Նվազագույն արտոնության սկզբունք
Հավելվածները պետք է միանան տվյալների շտեմարանին՝ օգտագործելով իրենց առաջադրանքների համար պահանջվող ամենացածր արտոնությունները [S2]: Վեբ հավելվածի հաշիվը չպետք է ունենա վարչական արտոնություններ և պետք է սահմանափակվի հատուկ աղյուսակներով կամ գործառնություններով, որոնք անհրաժեշտ են իր [S2] գործառույթի համար:
Մուտքի վավերացում և կոդավորում
Թեև չի փոխարինում պարամետրիզացիան, մուտքի վավերացումը ապահովում է պաշտպանության խորը [S2]: Հավելվածները պետք է օգտագործեն ընդունելի-ճանաչված լավ ռազմավարություն՝ հաստատելով, որ մուտքագրումը համապատասխանում է ակնկալվող տեսակներին, երկարություններին և ձևաչափերին [S2]:
Ինչպես է FixVibe-ն փորձարկում դրա համար
FixVibe-ն արդեն ծածկում է SQL ներարկումը փակ active.sqli սկաների մոդուլի միջոցով: Ակտիվ սկանավորումներն իրականացվում են միայն տիրույթի սեփականության հաստատումից և հավաստագրումից հետո: Ստուգումը սողում է նույն ծագման GET վերջնակետերը հարցման պարամետրերով, սահմանում է ելակետային պատասխան, որոնում է SQL-ին հատուկ բուլյան անոմալիաներ և միայն հաղորդում է հայտնաբերում ժամանակի հաստատումից հետո մի քանի ուշացումների երկարությամբ: Պահեստի սկանավորումները նաև օգնում են ավելի վաղ բացահայտել հիմնական պատճառը code.web-app-risk-checklist-backfill-ի միջոցով, որը դրոշակում է չմշակված SQL զանգերը, որոնք կառուցված են ձևանմուշների միջակայքով:
