/ Vyrobené vyhlásenia v CHOP skutočne zvyšujú bezpečnosť? - php, bezpečnosť, pdo

Vypracujú pripravené vyhlásenia v CHOP skutočne bezpečnosť? - php, bezpečnosť, pdo

Zaujímalo by ma, či tieto pripravené vyhlásenia CHOPnaozaj zvýšiť bezpečnosť, alebo ak sú v dotaze len "lacné" textové správy. Bod pripravených vyhlásení v skutočnosti spočíva v tom, že čo sa vloží ako parameter, nebude DBMS analyzované ako súčasť samotných inštrukcií, takže parametre

""; DROP TABLE foobar;"

nemá žiadny účinok a neporušuje dopyt. Vie to niekto detailne? Myslel som, že používam CHOP s pripravenými vyhláseniami na zabránenie injekcii sql. Ukázalo sa, že sú ťažko použiteľné (a dokonca ani nepracujú, aspoň na mojom miestnom stroji), takže to chcem zistiť skôr, než sa strácam oveľa viac času s PDO ;-)

odpovede:

11 pre odpoveď č. 1

Vytvorenie pripraveného príkazu pošle dotaz s zástupnými znakmi na server na analýzu a vráti token, aby zavolal danému príkazu.

Výzva zahŕňa len odosielanie údajov viazaných nakaždý parameter. Znamená to, že údaje nebudú analyzované (pretože nie sú súčasťou reťazca dopytu) a že štruktúra dopytu je pevná, keď je pripravený príkaz analyzovaný a nemôže byť zmenený injekciou.

Áno, pripravené vyhlásenie jednoznačne zvyšuje bezpečnosť.

Znamená to tiež, že nemusíte vynášať režijnú analýzu, ak opätovne použijete pripravené vyhlásenie pre niekoľko žiadostí.


3 pre odpoveď č. 2

Áno, zvyšujú bezpečnosť. PDO alebo MySQLi tiež zvyšuje rýchlosť oproti bežným metódam MYSQL v PHP, pretože údaje sú odovzdávané v kompaktnejšej podobe.