ahojda,
poslední dobou se zabývám php a ted resim zabezpeceni sve aplikace, cetl jsem toho hodne, ale uz v tom mam maglajs ze opravdu nevim ktera fce je na co, mohli bytse mi prosim napsat ktere funkce se pouzivaji k nasleduicim vecem: ?
Get parametr, jen cislo, pouziva se pri selectu do databaze (where id=)
Jakasi interni posta (text)
Forum
prihlaseni uzivatele
dekuju moc
Fórum › PHP
Čím zabezečit?
Číslo v get ošetříš snadno:
$id = (int)$_GET['id']
To ostatní závisí na tom, jak s těmi daty pracuješ. Pokud používáš databázi, tak je nutné ošetřit speciální znaky, např. pomocí funkce AddSlashes().
Nechapu uplne dotaz - pokud jej chapu spravne jako "Ktere funkce se pouzivaji na diskusni forum?".
Obecne, aby slo aplikaci dobre zabezpecit, tak je treba tomu rozumnet a chapat podstatu. Bezpecnost nelze zalozit na tom "nekde jsem cetl, ze namam pouzivat funkci X, ale Y".
Bezpecnostnich rizik webovych aplikaci je cela rada, napr.:
- SQL Injection
- Cross-site scripting
- Cross-site request forgery
- Remote File Inclusion
Konkretne zminujes napr. osetreni cisla na vstupu, ktere budes pouzivat v SQL dotazech. K tomu potrebujes zajistit, ze to, o cem si myslis, ze je cislo, tak opravdu cislo je. Napr.:
$cislo = intval($_GET['id']); // pokud to neni cislo, tak $cislo bude obsahovat nulu
$cislo = (int)($_GET['id']) // obdobne
nebo muzes testovat, zda to cislo je napr. pomoci regularniho vyrazu apod.
Taky nevím co konkrétně myslíš, ale vždycky je dobrá se zamyslet nad tím, co vše je vstupem?
Můžou to být kromě klasický formulářů také HTTP hlavičky nebo data z jiné stránky a musíš hlídat taky co se vrací z formů (někdo může form upravit, nebo ti změnit hodnoty hidden prvků)
A pak je dobré si rozmyslet, s kým dál komunikuješ a projít si dukumentaci těchto objektů, hlavně co se týče znaků a sekvencí znaků se speciálním významem. Pro SQL jsou to například apostrofy pomlčky. Pro souborový systém lomítka a tečky atd ....
A všechno toto ošetřit.
Doporučuji ti knihu Zranitelný kód http://knihy.cpress.cz/knihy/pocitacova-literatura/bezpecnost/zranitelny-kod-nejvaznejsi-chyby-kterych-se-muzete-ve-svych-webovych-aplikacich-dopustit/
Je opravdu pěkně napsaná a dozvíš se co hledáš ;-)
Get parametr, jen cislo, pouziva se pri selectu do databaze (where id=)
is_numeric();
Jakasi interni posta (text)
mysql_real_escape_string(); / pg_escape_string(); / addslashes();
Forum
podla toho co, pridavanie prispevkov, vyberanie alebo co?
prihlaseni uzivatele
urcite pouzi SESSIONS pre ukladanie citlivejsich dat ktore patria do cookies napr. uzivatelske id.
su hashovane, a vpodstate neupravitelne.. daju sa upravit, no kedze tam je ten hashing, nemaju co upravovat..
COOKIES sa daju vpohode upravit, preto by nebolo dobrym napadom dat cez cookies uzivatelske id..
samozrejme, SESSIONS niesu stopercentne, dalej sa pouziva overovaci token, ale vystacia ti aj SESSIONS
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
VB(S) Cim zacit? — založil BobrB
čim začít v SDL — založil Sony
Cim vytvarat PDF — založil vlado0991
S cím dřív začít ? — založil Lucinka
Java EE s cim zacat? — založil :::
Moderátoři diskuze