site logo
  • Կայքի մասին
  • Ծրագրավորում
  • Ժեշտ
  • Անվտանգություն
  • Հարց ու Պատասխան (ՀուՊ)
Նոյեմբեր 24, 2012  |  By KoY In

SQL injection կամ եթե ավելի հայերեն Ներդրված SQL

sql-injection

Ներդրված SQL  ը ամենատարածված եղանակներիցա ջարդուխուրդ անել սայթերն ու ծրագրերը, որոնք հիմնված են ինչ որ տվյալների բազայի վրա:Երբ որ սերվերի ադմինիստրաորը լավնա, փակելա բոլոր պորտերը, բացի 80-ից, ապա բացի վեբ-ից ուրիշ ճանապարհ չի մնում մտնել սերվեր:

Ներդրված SQL-ի գաղափարը

Իրականում իրենից ներկայացնում է շատ հասարակ մի բան, ու SQL-ի տարական գիտելիքներով կարելի է կիրառել (կիրառենք, որ հետո մեր հանդեպ չկիրառեն 🙂  ):

Երբ որ օգտագործողը լրացնումա ինչ որ ֆորմա ( ասենք լոգին պարոլ ) ու սղմում հաստատել, ապա ինչա տեղի ունենում… տեղի է ունենում հետևյալը ՝ օգտագործողի կողմից լրացված ինֆորմացիան որպես պարամետր փոխանցվումա սերվերի PHP կոդին ( հիմնականում  GET կամ POST տարբերակներից մեկով) , որն էլ իր հերթին գեներացնումա SQL հարցում բազաին դիմելու համար: ու էտ ամեն ինչը շատ լավ արտացոլվումա բրաուզերի հրամանների տողում :

Հիմա պատկերացնենք ինչ կլինի, եթե User դաշտում գրենք  ` OR1=1;/* իսկ  Password դաշտում  */–

Քանի որ ամեն դեպքում  1=1, ապա հարցման արդյունքը կլինի users աղյուսակը, իր էղած չեղածով:Իսկ թէ ինչ կարելիա արած էտ եղած չեղածի հետ արդեն ուրիշ հարցա:

մի այլ օրինակ: Բոլոր սայթերում էլ հիմնականում կան փնտրման դաշտ, որը նույնպես SQL սրսկելու ամենափափուկ մասերիցա…

օրինակ եթե  http://www.trend.az/   -ի search դաշտում փնտրենք hello բառը, ապա բրաուզերի տողում կունենանք http://www.trend.az/search.php?words=hello, իսկ այ հելլոն իրանց շատա, կարելիա էքսպերիմենտներ անել Insert, Update, Delete, ու DROP հրամաններով  🙂

Ինչպես պաշտպանվել

Պաշտպանվելու համար անհրաժեշտա լուրջ ֆիլտրացիաի ենթարկել HTML – ի  բոլոր ֆորմաներից եկող տվյալները, որոնց հիման վրա ձևավորվում են բազային դիմվող հարցումները:

  1. Մինչև SQL հարցում ձևավորելը ստուգեք ստացված պարամետրերը, հնարավորա ստուգել բազմաթիվ եղանակներով
  2. Ավելացնենք  կրկնակի կավիչկաներ SQL ում, կամ օգտագործել հատուկ սիմվոլերը էկրանավորելու համար նախատեսված հակառակ սլեշ \ :
  3. Իսկ եթե ստացված պարամետրը թվային տիպ է ու հնարավոր չէ ինչ որ սիմվոլներ ավելացնել, ապա ամենաքիչը 3  կրիտերիաով ստուգում պետքա անել նոր ձևավորել հարցումը:
SQL injection կամ եթե ավելի հայերեն Ներդրված SQL, 7.6 out of 10 based on 10 ratings
PHP SQL injection Անվտանգություն Վեբ տեղեկատվության անվտանգություն Տվյալների բազաներ
Previous Storyասք ազատ էլէկտրոնիկայի մասին
Next StoryՎիրտուալ աղյուսակներ

Comments: 1 reply added

  1. Արտյոմ Նոյեմբեր 27, 2012 Մեկնաբանել

    Կարծում եմ թվային տիպի դեպքում 1 կրիտերիայով ստուգումը բավարար է, այսինքն եթե վստահ ենք (preg_match('/^[0-9]+$/',$var)), որ ստացված պարամետրը թվային տիպ է ապա այևս ոչ մի ստուգման կարիք չկա տվյալ փոփոխականի հետ կապված:

Join in: leave your comment Cancel Reply

(will not be shared)

Որոնում

Նշագրեր

*Nix-եր (18) android (17) C++ (19) C և C++ (27) Excel (10) html (10) Network Administration (16) System Administration (28) Windows 7 (14) Ալգորիթմներ (15) Անվտանգություն (29) ԳՆՈՒ/Լինուքս (16) Թեյնիկներին (57) Ժեշտ (44) Լակոնիկ (21) Լինուքս/Յունիքս հրամաններ (29) Լուսանկարչություն և մշակում (15) Խելախոսներ (19) Ծրագրավորման լեզուներ (16) Ծրագրավորում (64) Ծրագրեր (48) Հայականացում (28) Հումոր (11) Ուսումնական նյութեր (34) Սոցցանցային Հմտություններ (19) Վեբ (25) Վերլուծություն (10) Վորդպրես (21) ՏՏ և փիլիսոփայություն (21) Տվյալների բազաներ (12) Օպերացիոն համակարգեր (27) Օֆիսային ծրագրեր (22) անդրոիդ (16) բաշ (10) ինտերնետ (11) խելախոսներ (13) համացանց (15) հայատառ (10) հայերեն (11) հայերեն ստեղնաշար (11) հայկական սոֆթ (11) ստեղնաշար (10) սքրիփթ (14) վինդոուս (12) տեսանյութ (23)
Copyright ©2017 ThemeFuse. All Rights Reserved