Autor | Zpráva | ||
---|---|---|---|
David1256 Profil |
#1 · Zasláno: 22. 10. 2012, 21:51:19
Dobrý den,
přidáván do databáze přes inputy a php různá data. Jenže když se v textu objeví např. ' (uvozovka), tak ji php interpretuje jako část kódu, proto jsem využil funkci var_export(), která přes tyto uvozovky přidává zpětná lomítka, ale potřeboval bych ještě nějakou funkci, která by dávala zpětná lomítka i před závorky. Existuje taková? Děkuji. |
||
panther Profil |
#2 · Zasláno: 22. 10. 2012, 22:00:36
David1256:
pokud ukládáš do DB, ukládej textové hodnoty skrz mysql_real_escape_string. |
||
David1256 Profil |
#3 · Zasláno: 22. 10. 2012, 22:41:40
Díky moc, funguje. U této funkce jsem si přečetl i možnost zneužití, pokud nejsou vstupní data například u inputu u přihlašování ošetřena touto funkcí tak, že se může využít tzv. sql injection útoku. Když mám použit skript na přihlašování ze zdejšího faq topiku, tak mi to je i tak jedno ne? Když tam jsou vstupní data ošetřena hashováním
AND password = sha1('$password') , tak může nastat jen chyba skriptu, ale nanapadá mě žádný vstup v $password, který by mohl dovolit přihlásit se neplatnému uživateli jako by to mu bylo např. když by tam nebyla ta funkce sha1 viz. <?php // We didn't check $_POST['password'], it could be anything the user wanted! For example: $_POST['username'] = 'aidan'; $_POST['password'] = "' OR ''='"; // Query database to check if there are any matching users $query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'"; mysql_query($query); // This means the query sent to MySQL would be: echo $query; ?> AND password = sha1('$password') nebylo možné ne? Nebo jde to snad nějak ovlivnit hodnotou $password, když je v tomto případě stejně všechno uzavřeno ve funkci sha1?
Děkuji. |
||
panther Profil |
#4 · Zasláno: 22. 10. 2012, 22:51:30
David1256:
POST['username'] musí být ošetřeno, hash je z pohledu znaků, ze kterých se skládá, bezpečný.
|
||
Časová prodleva: 12 let
|
0