POSLEDNÁ ŠANCIA: Získaj IT rekvalifikačný kurz za 0 € v rámci programu NPO. Dotácie končia už 9. 7.!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – Obrana proti útoku SQL injection v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Adam Harajda
Člen
Avatar
Adam Harajda:5.1.2017 13:49

A nedalo by sa to ošetriť aj cez povolené znaky? napríklad takto:

if(preg_match('(^[A-Za-z0-9]{4,32}$)',$­_POST['name'])){
/*vstup je správny*/
}
else{
/*vstup je nesprávny*/
}

 
Odpovedať
5.1.2017 13:49
Avatar
Odpovedá na Adam Harajda
Martin Konečný (pavelco1998):5.1.2017 14:10

Je to také možné, ale osobně doporučuji ošetřovat každý vstup. Je lepší ošetřit a nepotřebovat, než potřebovat a mít v aplikaci díru.
Větší jistotu máš, když použiješ knihovny, které escapování řeší za tebe. Viz třeba parametrizované dotazy v PDO, nějaká DB layery ve frameworcích atp.

Odpovedať
5.1.2017 14:10
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
posvicmichal
Člen
Avatar
posvicmichal:28.6.2017 18:15

Chci se zeptat, do jaké míry může proti SQL injekci pomoct pojmenovávání sloupců nějakým jiným způsobem. Například místo "id" napsat "111iD222" a podobně. Je mi jasné, že je to v každém případě dost "špinavý postup", ale může pomoct?

 
Odpovedať
28.6.2017 18:15
Avatar
Odpovedá na posvicmichal
Martin Konečný (pavelco1998):28.6.2017 18:56

Ahoj,
v první řadě nemá smysl pojmenovávat jinak sloupce kvůli "bezpečnosti", když je jiná a daleko spolehlivější ochrana. Pomoct by to mohlo jedině do doby, dokud by útočník nepoznal, jak se ten daný sloupec jmenuje. Rozhodně tento způsob ochrany nedoporučuji.

Odpovedať
28.6.2017 18:56
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovedá na posvicmichal
Michal Štěpánek:29.6.2017 8:28

Jak píše kolega, divný název sloupce, není ochrana protí případným útočníkům. DB ochráníš jen tak, že budeš psát příkazy tak, aby je nemohl nikdo "zneužít"., tzn. např. používat parametry.

Odpovedať
29.6.2017 8:28
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:5.6.2018 16:40

Podobně můžeme vymazat mto tabulky rovnou celou databázi.

 
Odpovedať
5.6.2018 16:40
Avatar
Marty
Člen
Avatar
Marty:5.10.2018 1:58

Dokáže ten parametrizovaný dotaz ochránit i před tímhle? V článku jsem nenašel odpověď. Díky.

1 OR 1=1

 
Odpovedať
5.10.2018 1:58
Avatar
Odpovedá na Marty
Martin Konečný (pavelco1998):5.10.2018 2:57

Zdravím,

parametrizované dotazy chrání dotazy před SQL injection, tedy i před uvedeným kódem.

Odpovedať
5.10.2018 2:57
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 8 správy z 18.

OSZAR »