Autor | Zpráva | ||
---|---|---|---|
BitaSk Profil |
#1 · Zasláno: 9. 7. 2015, 09:31:12
Zdravím, prosím vás. Mám vrácených například 5 POST proměnných v poli user. Které následně ukládám do DB. Postačí mi následující kód pro zabezpečení proměnné při vložení do DB ? Například proměnná name
mysql_real_escape_string(htmlspecialchars(mb_convert_encoding($user['name'], 'UTF-8', 'UTF-8'))); Díky za odezvu. |
||
Keeehi Profil |
BitaSk:
Ne nestačí. Tohle je dobré tak pro řetězce a ještě k tomu to není správně. Proti SQL injection to sice ochrání ale funkce htmlspecialchars tam při ukládání do DB nemá co dělat. Ta se má použít až při výpisu. Ovšem pro čísla je toto escapování naprosto špatně protože útočník žádné apostrofy posílat nemusí. Jak to dělat správně. Funkce mysql_* jsou už zastaralé a budou v nových verzích odstraněny. Měl bys používat minimálně mysqli_* lépe však nějakou knihovnu která za tebe řeší i další věci. Třeba právě to správné escapování. Mohu doporučit třeba dibi. |
||
BitaSk Profil |
#3 · Zasláno: 9. 7. 2015, 10:03:52
Keeehi:
děkuji za reakci. Dobře mysql používám od doby kdy jsem se začal databáze učit. A co by jste mi doporučil, pokud mám hotový celí projekt v mysql ? Předělat do DIBI ? Děkuji za odpověď. |
||
kzk_cz Profil * |
#4 · Zasláno: 9. 7. 2015, 10:05:09
Lépe https://github.com/nette/database - dibi myslím už nebude do budoucna tolik vylepšovaná/používaná. Ale funguje skvěle, o tom žádná.
|
||
BitaSk Profil |
#5 · Zasláno: 9. 7. 2015, 10:11:31
Dobře děkuji moc
|
||
Keeehi Profil |
#6 · Zasláno: 9. 7. 2015, 10:15:28
Co doporučit je těžké říct když neznám ten projekt. Vzhledem k tomu, že to nejspíš stejně budeš muset opravovat kvůli té bezpečnosti bych asi doporučil to upravit s použitím dibi.
kzk_cz [#4]: Nette database je taková trochu víc magičtější. Dá se s ní pracovat stejně jako s dibi avšak pokud už má hotovo, je to asi zbytečné. |
||
BitaSk Profil |
#7 · Zasláno: 9. 7. 2015, 10:18:02
ok, tak díky. Použiji DIBI
|
||
Časová prodleva: 10 let
|
0