Мазмунга өтүү

Тиркемелердеги SQL: параметрленген суроо-талаптар жана SQL-инъекция

Сабактын башталышы

Тиркемелердеги SQL: параметрленген суроо-талаптар жана SQL-инъекция

Чыныгы программалар SQL'ди кантип коопсуз жөнөтөт -- жана чабуулчулар аны туура эмес кылгандарды кантип бузат

Негизги идея: Тиркеме SQL'ди дээрлик эч качан кол менен жазбайт -- ал колдонуучулардан келген маалыматтан суроо-талап саптарын курат. Эгер бул маалымат түздөн-түз суроо-талаптын текстине жабыштырылса, чабуулчу өзүнүн SQL'ин ал жакка киргизе алат. Эң маанилүү коргоо -- бул параметрленген суроо-талап (даярдалган билдирүү деп да аталат): сиз суроо-талаптын үлгүсүн жана маанилерин башка-башка каналдар менен жөнөтөсүз, ошондуктан колдонуучунун киргизген нерсеси суроо-талаптын маанисин эч качан өзгөртө албайт.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • тиркеме маалымат базасына кантип туташып, SQL жөнөткөнүн сүрөттөө,
  • суроо-талаптарды саптарды бириктирүү аркылуу куруу эмне үчүн кооптуу экенин түшүндүрүү,
  • SQL-инъекция чабуулунун анатомиясын окуу (кирүүнү айланып өтүү жана UNION аркылуу маалымат уурдоо),
  • чабуулду жоюучу параметрленген суроо-талап / даярдалган билдирүү жазуу,
  • бузулган суроо-талап мүмкүн болушунча аз зыян келтириши үчүн эң аз артыкчылык принцибин колдонуу.

1. Тиркеме SQL'ди кантип жөнөтөт

Мурда сиз SQL'ди клиентте кол менен аткарчусуз. Веб- же мобилдик тиркеме ошол эле нерсени жасайт, бирок программалык түрдө. Ал драйвер (Node.js үчүн mysql2, Java үчүн JDBC же Python үчүн psycopg сыяктуу китепкана) аркылуу базага туташуу ачат, суроо-талапты текст катары жөнөтөт жана саптарды кайра окуйт.

Маалымат базасы "колдонуучу" бар экенин таптакыр билбейт. Ал сапты алат, аны суроо-талапка ажыратат, аткарат жана саптардын жыйындысын кайтарат. Бул -- бүт теманын өзөгү: база өзүнө берилген каалаган SQL-текстке ишенет. Эгер кодуңуз четтеги адамга ошол текстке таасир этүүгө уруксат берсе, четтеги адам чынында сиздин серверде SQL жазып жатат.

Төмөндөгүлөрдүн баары бир кичинекей дүкөн базасын колдонот. Аны бир жолу түзөлү.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө