Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MySQL a nebezpečné kódy, možnosť zneužitia chýb a pod.

Mám trochu obšírnu otázku. Začínam programovať v PHP a MySQL a som v rozpakoch. Internet je plný viet typu: "Nesprávne naprogramovaný/resp. s chybami/ zdrojový kód môže nabúrať integritu databázy, može byť zneužitý" a pod.
Mám momentálne záujem pustiť sa do jednoduchého shout boxu, taka mini kniha odkazov, ale nechcem použiť žiaden open-source kód s hotovým fórumom, chcem sa do toho pustiť sám. Chcem do databázy vkladať jednotlivé príspevky s rôznymi údajmi cez klasický formulár s PHP mysql query.
Preto moja otázka znie, ako by mohli byť zneužité programátorské chyby/nedostatky, ktoré by som poprípade spravil a aké následky by mohli mať, ako sa im vyvarovat a ako ich riešiť. Mohol by som takýmto spôsobom nechcene poskytnúť prístupové heslá, poprípade poskytnúť prístup k rôznym údajom?
Prosím o zoznam najčastejších chýb takéhoto rázu, poprípade by som bol vďačný aj za linky, len nech sú to stránky v nejakom ľudskom jazyku (SVK, CZ), prosím.

programovat v PHP a MySQL sa učím z knihy "PHP a MySQL" od Larry Ullman-a.

Za každú radu by som bol vďačný.
ICQ# 221-761-301 alebo mejl 2laak@post.sk

Předmět Autor Datum
Nějaké čtení pro začátek: http://www.zive.cz/h/Programovani/AR.asp?ARI=119246 &CAI=2038 obrana-proti…
host 02.08.2006 21:04
host
Ta kniha neni spatna pro zacatek, je dobre popsana, pok se take mrkni na www.php.net tam je snad vse…
virus 02.08.2006 21:33
virus
Najčastejšie sú útoky SQL injection a HTML injection (plus JavaScript injection). Základom je neveri…
los 02.08.2006 21:40
los
Dobrý navod !
Invisible Man 03.08.2006 14:02
Invisible Man
Ja myslim ze ten kdo nema osetren sqlinjection utok tak si ho zaslouzi, pokud ma nejaky druhe strany… poslední
error414 04.08.2006 09:45
error414
aj ked to nie je pre teba v ludskom jazyku, aj tak sa skus na to pozriet: http://www.securiteam.com/…
IgorK 02.08.2006 22:51
IgorK
este ma napadlo, ze by si si mohol kupit knihu - Hacking bez tajemstvi - webove aplikace(v CZ jazyku…
IgorK 03.08.2006 09:45
IgorK

Najčastejšie sú útoky SQL injection a HTML injection (plus JavaScript injection). Základom je neveriť vstupom od používateľa, čiže ošetrovať údaje z GET, POST a COOKIE. Ďalšou častou chybou je includovanie súboru, ktorého meno dostaneš z parametra URL bez akejkoľvek kontroly.

Proti SQL injection vymysleli "úžasnú" ochranu (magic quotes), ktorá ošetrí vstupy od používateľa tak, aby boli bezpečné. Keď vypneš magic quotes, tak si musíš vstupy ošetrovať sám a pri vytváraní dopytov na databázu použiť napr. funkciu mysql_escape_string. Podľa mňa je najlepšie vypnúť magic quotes a pripraviť si hodnoty parametrov do premenných, ktoré sa potom použijú v SQL dopyte, napr. takto:

$cislo = (int) $_GET ["cislo"];
$retazec = mysql_escape_string ($_GET ["retazec"]);
$bool = ($_GET ["bool"]? "1": "0");

mysql_query ("select * from table where cislo=$cislo and retazec='$retazec' and bool=$bool");

Vloženiu HTML kódu na stránky zabrániš tak, že použiješ funkciu htmlspecialchars vždy, keď vypisuješ obsah premennej, ktorá sa má zobraziť ako čistý text. Ak pridávaš text ako hodnotu parametra URL, použiješ urlencode. HTML/JavaScript injection si môžeš vyskúšať na živě.sk/cz.

Ďalšími dobrými opatreniami proti útokom je vypnutie globálnych premenných (register globals), zakázanie prechádzania adresármi, nevypisovanie (ale logovanie) chýb a podobne.

Ja myslim ze ten kdo nema osetren sqlinjection utok tak si ho zaslouzi, pokud ma nejaky druhe strany tam v drtive vetsine je nastavena direktiva magickych uvozovek. Take je tento utok tak znamy ze se snim zacatecnik hned setka.

Rekl bych ze bysme se mely bat jinych utoku.

Zpět do poradny Odpovědět na původní otázku Nahoru