Oznámení
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.