tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

dibi a prepared statements…

před 10 lety

Kukosk
Člen | 8

chcel by som sa opytat… ked executnem napriklad nejaku klasicku query, robi to dibi cez prepare statementy, alebo nie ? chcel by som totiz pouzivat prepare statementy, a hladam co najjednoduchsiu cestu.
Takze napriklad query: dibi::fetchAll(" SELECT * FROM bla WHERE a=%s AND b=%s „, "aaa“, „aaa“);

pouzije tato query prepared statement, cize sa nemusim obavat sql injection, ani sql injection za pouzitia hexa kodu a podobne ?

Dakujem za odpoved :)

před 10 lety

paranoiq
Člen | 388

dibi prepared statements nepoužívá

proti SQLi je zabezpečena jinak – proměnné vkládané správným způsobem se automaticky escapují. tvůj příklad je proti SQLi zabezpečen

před 10 lety

Kukosk
Člen | 8

ano, proti jednoduchej sql injection som zabezpeceny aj teraz bez dibi, vsetky vstupy si escapujem a tak ale … advanced sql injection – neviem vlastne ani v com to spociva ale pocul som ze sa posielaju nejake znaky v hexa kode, a takto dokazu hackeri vzdy jednym requestom ziskat nejake udaje z databaze par bytov ci bajtov, neviem. a vraj jedina metoda ako sa to da osetrit su prave prepared statements.

před 10 lety

paranoiq
Člen | 388

ošetřený hexakód v uvozovkách je pořád jenom obyčejný text

pošli prosím odkaz na zdroj, kde tohle tvrdí. rád se poučím

prepared statements nejsou žádný bezpečnostní zázrak. vstupy ošetřují naprosto stejně jako třeba dibi nebo jiný db layer. jejich výhoda je jinde – v opakovaném spouštění stejného dotazu s jinými daty

před 10 lety

PetrP
Člen | 587

Kukosk napsal(a):

ano, proti jednoduchej sql injection som zabezpeceny aj teraz bez dibi, vsetky vstupy si escapujem a tak ale …

Neescapuješ potom náhodou dvakrát? Tedy jednou ty a podruhé dibi. To mi to mohlo poničit data.

před 9 lety

jirkamailto
Člen | 27

Dobry den,
jeste se na tema SQL injection zeptam. Pouzivam dibi, postgres. Pres promenne v url si vracim urcite hodnoty $_GET[''] , ktere pak osetruji pomoci funkce stripslashes. Nebude se toto s vnitrni ochranou dibi proti SQL injection tlouct?

Dalsi dotaz je , kdyz mam funkci:

<?php
$query = "SELECT * from $table WHERE ($parameter = $type)"
$result = dibi::query($query, $value);
?>

takze to znamena, kdyz je parametr nazev sloupce a typ treba string, takze pokud se nekdo pokusi zadat backslash s necim nebo nejaky naznak o SQL injection, tak je aplikace automaticky chranena?

Predem dekuji za odpoved.

před 9 lety

phx
Člen | 652

Spravny pristup je pres modyfikatory. viz https://dibiphp.com/cs/quick-start