Параметржсэн асуулга нь sql injection-ээс аюулгүй юу?

Параметржсэн асуулга нь sql injection-ээс аюулгүй юу?
Параметржсэн асуулга нь sql injection-ээс аюулгүй юу?
Anonim

Тийм ээ, бэлтгэсэн мэдэгдлийг ашиглах нь бүх SQL тарилгыг зогсоодог, ядаж онолын хувьд. Практикт параметржүүлсэн мэдэгдлүүд нь бодитоор бэлтгэгдсэн мэдэгдэл биш байж болно, жишээлбэл. PHP дээрх PDO нь тэдгээрийг анхдагч байдлаар дуурайдаг тул захын халдлагад нээлттэй байдаг. Хэрэв та жинхэнэ бэлтгэсэн мэдэгдлүүд ашиглаж байгаа бол бүх зүйл аюулгүй байна.

Яагаад параметржүүлсэн асуулга нь SQL тарилга хийхээс сэргийлдэг вэ?

Параметржсэн асуулга нь SQL хайлтыг ажиллуулахын өмнө аргументуудыг зөв орлуулдаг. Энэ нь таны асуулгын утгыг өөрчлөх "бохир" оролтыг бүрэн арилгана. Өөрөөр хэлбэл, хэрэв оролт нь SQL-г агуулж байгаа бол SQL-г үр дүнгийн мэдэгдэлд хэзээ ч оруулдаггүй тул энэ нь гүйцэтгэсэн зүйлийн нэг хэсэг болж чадахгүй.

Параметржүүлсэн SQL аюулгүй юу?

Параметржсэн мэдэгдлүүд нь SQL хэллэгт дамжуулагдсан параметрүүдийг (жишээ нь, оролт) аюулгүй байдлаар боловсруулж байгаа эсэхийг болгодог. Жишээлбэл, параметржүүлсэн мэдэгдлийг ашиглан JDBC дээр SQL асуулга ажиллуулах найдвартай арга нь: … executeQuery(sql, email); байхад (үр дүн.

SQL injection дахь параметржүүлсэн асуулга гэж юу вэ?

Параметржүүлсэн асуулга хөгжүүлэгчийг эхлээд бүх SQL кодыг тодорхойлохыг албадаж, дараа нь параметр бүрийг асуулгад шилжүүлнэ. Энэхүү кодчилолын загвар нь хэрэглэгчийн ямар оролтоос үл хамааран мэдээллийн санд код болон өгөгдлийг хооронд нь ялгах боломжийг олгодог.

Параметржүүлсэн мэдэгдэл хэрхэн буурдаг вэSQL тарилгын халдлага?

Параметржсэн асуулга Энэ арга нь мэдээллийн санд кодыг таньж, оролтын өгөгдлөөс ялгах боломжтой болгодог. Хэрэглэгчийн оролтыг автоматаар иш татдаг бөгөөд оруулсан оролт нь зорилгыг өөрчлөхөд хүргэхгүй тул энэ кодчилол нь SQL тарилгын халдлагыг багасгахад тусалдаг.

Зөвлөмж болгож буй: