Zdravím,
dal som si tento semester predmet od informatikov, a celkovo to je v pohode, len čo ma trápi je bezpečnosť. Ako úvod do týcho technologíí nám am veľa o bezpečnosti nevravia, skôr len "aby to šlo".
Ale zaujímalo by ma, kde sú najvačšie zraniteľnosti týcho systémov?
Čo si mám konkrétne predstaviť pod php injection? Poprosím konkrétny príklad :)
Tak isto aj na sql injection poprosím konkrétny príklad...
A ako najlepšie sa im brániť?
Možno začiatočnícke otázky, ale radšej takto a mať "istotu" ako to naštudovať zle a následne niečo pokašlať...
P.S. do google viem naťukať tiež, ale zaujímali by ma skôr príklady z praxe, s ktorými sste sa "najlepšie" stretli
Fórum › PHP
PHP & MySQL injections
Je to jednoduché, cokoliv co zadává uživatel (a co může pozměnit) kontrolovat...
Při vkládání do databáze:
- řetězce: mysql_real_escape_string
- čísla: intval či jiná kontrola na číselné hodnoty
Dále kontrolovat, zda-li je vstup validní (např. očekávám li hodnoty 1 až 5, tak kontrolovat, že poslaná hodnota je v tomto intervalu).
Nevkládat soubory s názvem souboru takovým, který zadá uživatel.
Tj něco ve stylu:
include $_GET['soubor']+'.php';
Při vyýpisu hodnot z databáze na hodnoty aplikovat f-ci htmlspecialchars();, pokud vypisujeme HTML, pak při ukládání musíme ošetřit vstup tak, aby neobsahoval nepovolené tagy či události (onclick, onload...).
V dotazech používat kolem zadaných hodnot apostrofy:
select * from lide WHERE prezdivka='LordDezmont'
+ právě mysql_real_escape_string
Když vypisujeme data do inputů, pak je také ošetřovat f-cí htmlspecialchars.
Co se týče dalších bezpečnostních doporučení, pak například php soubory dát do složky, která není přístupná z webu (pouze uvnitř aplikace), mít vyplé zobrazování chyb, nepoužívat register_globals....
Sleduj mě na twitteru – @lukaschury.
To vlado0991 : Napíšeme na toto téma článek :).
K tvému dotazu:
máš například soubory připojení k databázi (connection.php), nějaké logování chyb (errors.php) a další PHP soubory, které sami o sobě nefungují, ale jen jsou pomocné (funkce.php...).
Aby se zvýšila bezpečnost (může se například stát, že zrovna kopíruješ daný soubor na FTP - nenakopíroval by jsi ho celý a někdo by tento soubor zadal do prohlížeče), mohla by mu vyskočit část textu (kódu) + aby útočník na tyto soubory nemohl zkoušet různé dotazy, aby se něco o tvé aplikaci dozvěděl.
Proto soubory dáš do složky, která není zobrazitelná pro uživatele, ale ty (tvá aplikace) se do ní dostane.
Technicky se to provede tak, že:
- všechny tyto soubory dáš do jedné složky a pomocí .htaccess zamezíš přístup (deny:all...)
- nebo: nastaví se document_root na podsložku (tam teprve bude index.php, obrázky...) a open_base_dir se nastaví o úroveň výše, kde budou tyto soubory (tam se ale uživatel nemůže dostat, protože document_root jej "přesměruje" přímo do podsložky).
Sleduj mě na twitteru – @lukaschury.
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
AJAX & PHP & MySQL vložení záznamu — založil JMM
PHP & MySQL galerie — založil JMM
MySQL - Character set & collation v stored procedure — založil Prog.
PHP & Procedury — založil Dawo
HTTP request & Packety jako v PHP — založil KOzIčÁk
Moderátoři diskuze