Talaan ng mga Nilalaman:
Kahulugan - Ano ang ibig sabihin ng SQL Injection?
Ang isang injection ng SQL ay isang pag-atake sa computer kung saan naka-embed ang malisyosong code sa isang hindi maayos na dinisenyo na application at pagkatapos ay ipinasa sa database ng backend. Ang malisyosong data pagkatapos ay naglilikha ng mga resulta ng query sa database o mga aksyon na hindi dapat naisakatuparan.
Ipinapaliwanag ng Techopedia ang SQL Injection
Dumaan tayo sa isang halimbawa ng pag-atake ng iniksyon ng SQL:
Ang isang application na nagpapatakbo ng mga operasyon ng isang bangko ay naglalaman ng mga menu na maaaring magamit upang maghanap para sa mga detalye ng customer gamit ang mga puntos ng data tulad ng numero ng Social Security ng customer. Sa background ang application ay tumatawag ng isang query sa SQL na tumatakbo sa database sa pamamagitan ng pagpasa ng mga pinasok na mga halaga ng paghahanap tulad ng sumusunod:
PUMILI client_name, telepono, address, date_of_birth SAAN panlipunan_sec_no = 23425
Sa halimbawang script na ito, pinapasok ng gumagamit ang 23425 na halaga sa window ng menu ng aplikasyon, na humiling sa gumagamit na ipasok ang numero ng Social Security. Pagkatapos, gamit ang halaga na ibinigay ng gumagamit, ang isang query sa SQL ay tumatakbo sa database.
Ang isang gumagamit na may kaalaman sa SQL ay maaaring maunawaan ang application at, sa halip na magpasok ng isang solong halaga kapag tinanong para sa numero ng Social Security, ipasok ang string "23425 o 1 = 1, " na ipinasa sa database tulad ng sumusunod:
PILIONG client_name, telepono, address, date_of_birth SAAN panlipunan_sec_no = 23425 o 1 = 1
Mahalaga ang sugnay na SAAN sapagkat ipinakilala nito ang kahinaan. Sa isang database, ang kondisyon 1 = 1 ay palaging totoo, at dahil ang query ay tinukoy upang ibalik ang mga detalye ng numero ng Social Security (23425) o SAAN 1 = 1, ibabalik ng query ang lahat ng mga hilera sa talahanayan, na hindi ito ang orihinal na hangarin.
Ang itaas na halimbawa ng pag-atake ng iniksyon sa SQL ay simple, ngunit ipinapakita kung paano ang pagsasamantala sa isang kahinaan upang linlangin ang application sa pagpapatakbo ng isang query sa database ng backend o utos.
Ang pag-atake ng iniksyon ng SQL ay maaaring mapagaan sa pamamagitan ng pagtiyak ng tamang disenyo ng aplikasyon, lalo na sa mga module na nangangailangan ng pag-input ng gumagamit upang magpatakbo ng mga query sa database o utos. Sa halimbawa sa itaas, ang application ay maaaring mabago upang tumanggap ito ng isang halaga lamang.