Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

bezpecnost – injection

dave777
verified
rating uzivatele
11. 3. 2008 16:59:45
Ahoj.
Rad bych prosim od vas slysel (kdo je ochotny), jak resite sql injection a bezpecnost celokove. V teto problematice jsem zacatecnik.
Dekuji predem.
11. 3. 2008 16:59:45
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50876
Muskwa
verified
rating uzivatele
(25 hodnocení)
11. 3. 2008 17:27:03
mrkni sem
11. 3. 2008 17:27:03
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50875
Fuck You
verified
rating uzivatele
(1 hodnocení)
11. 3. 2008 17:43:47
SQL injection: Všechna data před použitím v SQL dotazu/příkazu vyescapovat. Pro MySQL použít mysql_real_escape_string, pro jiné databáze patřičnou náhradu.
HTML injection: Všechna vypisovaná data, jejichž původem si nemůžeš být 100% jistý, taktéž vyescapovat, funkcí htmlspecialchars s flagem ENT_QUOTES. Hodnoty atributů HTML prvků uzavírat vždy do uvozovek, pokud můžou obsahovat text přišlý z vnějšku.
PHP injection: Název souboru pro vložení pokud možno neodvozovat ze vstupu (vyvarovat se konstrukcím jako "include "./includes/" . $_GET . ".php";). Pokud nemožno, můžeš například pohlídat, jestli je vkládaný soubor v určitém "povoleném" adresáři:
$page = realpath("./includes/" . $_GET . ".php");
$povolenyAdresar = realpath("./includes");
if (substr($page, 0, strlen($povolenyAdresar)) == $povolenyAdresar) {
include $page;
}
Možností je celá řada. Stejně tak je spousta různých možností injekce, ale v principu jde vždy o totéž: Data přišlá zvně podle situace vždy buďto patřičně zakódovat (SQL injection, HTML injection), nebo validovat (PHP injection).
11. 3. 2008 17:43:47
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50874
dave777
verified
rating uzivatele
11. 3. 2008 18:04:18
Dekuji moc.
Takze jestli to chapu spravne, tak pokud ukladam data do databaze, tak pouzit htmlspecialchars a pri dotazu v mysql mysql_real_escape_string?
11. 3. 2008 18:04:18
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50873
Strzibny
verified
rating uzivatele
(25 hodnocení)
11. 3. 2008 18:36:24
Napsal dave777;40622
Dekuji moc.
Takze jestli to chapu spravne, tak pokud ukladam data do databaze, tak pouzit htmlspecialchars a pri dotazu v mysql mysql_real_escape_string?
Obvyklejší je volat mysql_real_escape_string před vstupem, htmlspecialchars při výstupu, tedy až si data vytáhneš z databáze. Lze to i před, pokud víš co děláš :-).
11. 3. 2008 18:36:24
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50872
toshi
verified
rating uzivatele
(4 hodnocení)
11. 3. 2008 18:37:15
Napsal llook;40616
SQL injection: Všechna data před použitím v SQL dotazu/příkazu vyescapovat. Pro MySQL použít mysql_real_escape_string, pro jiné databáze patřičnou náhradu.
Do novýho projektu je imho lepší začít minimálně s PDO (pokud ne rovnou s ORMem)...a cpát to přes args v execute() nebo používat bindparam.
11. 3. 2008 18:37:15
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50871
meba
verified
rating uzivatele
(3 hodnocení)
11. 3. 2008 20:18:40
Mimochodem, to z PHP bezpecnosti neni vse. Jeste je treba (hlavne do novyho projektu) nastudovat minimalne CSRF (Cross Site Request Forgery)
11. 3. 2008 20:18:40
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50870
dave777
verified
rating uzivatele
12. 3. 2008 14:53:07
Cituji:
14:33:54 hmm jak tak koukam, tak kazdy normalni webhosting zz je automaticky braneny jak proti php injectoru, tak proti mysql infjectoru
14:34:26 tedka sem omylem prisel na to ze kazdemu postu automaticky prida addslashes
Co je na tom prosim pravdy?
12. 3. 2008 14:53:07
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50869
Fuck You
verified
rating uzivatele
(1 hodnocení)
12. 3. 2008 17:14:35
Ano i ne.
Nastavení allow_url_include je takřka samozřejmostí, ale pokud byste měli v kódu include $_GET;, tak to pořád na PHP injection náchylný je (protože lze podstrčit php://stdin). Zkrátka i tak je potřeba o tom něco vědět.
Automatický přidávání addslashes ke vstupním datům má na svědomí nastavení magic_quotes_gpc. Na to se spolehnout dá, ale zase s tím jsou jiné problémy - ani ne tak bezpečnostní, jako nepříjemné... Lepší je tohleto vypnout (třeba v .htaccess) a slashe přidávat až při sestavování dotazu.
12. 3. 2008 17:14:35
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50868
meba
verified
rating uzivatele
(3 hodnocení)
12. 3. 2008 21:43:40
Dulezite je, ze na takove nastaveni se proste neda spolehnout. Staci neopatrny administrator, ktery to zmeni a je vymalovano.
Mimochodem, php://stdin by v nejnovejsich PHP snad melo byt opraveno. Aspon co jsem to naposled zkousel u sebe (a exploitoval jinde :-)
12. 3. 2008 21:43:40
https://webtrh.cz/diskuse/bezpecnost-injection/#reply50867
Pro odpověď se přihlašte.
Přihlásit