Привет
Числа фильтрую intom - $chislo=(int)$_GET['chislo'];
Все остальные данные - $text=mysql_real_escape_string($_GET['text']);
Возможен ли хоть какой то обход данной защиты?
Цитата (inpost @ 5.04.2013 - 05:22) |
Это защита от sql-inj, и защищает нормально! |
Цитата (Vano @ 5.04.2013 - 05:56) | ||
В каком смысле нормально? она оптимально защищает от инъекций? - возможен обход mysql_real_escape_string или int или нет? Допустим текст в байтах какихто передать в базу тем самым обойдя данные функции и провести inj |
Цитата (inpost @ 5.04.2013 - 09:23) |
магические кавычки лишь добавят в результат лишние слеши, ничего более. При выводе ты получишь нечто вроде: \"Hello mr.M\'Donald\" , что не будет уязвимостью SQL, а простой корявостью |
Цитата (Vano @ 5.04.2013 - 02:15) |
Числа фильтрую intom - $chislo=(int)$_GET['chislo']; |
Цитата (killer8080 @ 5.04.2013 - 10:12) | ||
что и дробные то же? ![]() Да и с целыми то же не всегда можно приведение типов использовать. |
Цитата |
Удаляю все кроме . |
Цитата (rooor @ 5.04.2013 - 11:11) | ||
а если будет запятая? |
Цитата (Vano @ 5.04.2013 - 08:48) |
Где дробные - регулярками. Удаляю все кроме . и цифр потом *1 |
Цитата (rooor @ 5.04.2013 - 09:11) |
а если будет запятая? |
$names =$_POST['name'];
$names2 = preg_replace('%[^ a-zA-ZА-Яа-я]+%', '', $names);
mysql_query("UPDATE `users` SET `name_us`='$names2' WHERE `id`='{$_SESSION['id']}'");
include_once ($_SERVER['DOCUMENT_ROOT'].'/file/include.php');
$names =$_POST['name'];
$names2 = preg_replace('%[^ a-zA-ZА-Яа-я]+%', '', $names);
mysql_query("UPDATE `users` SET `name_us`='$names2' WHERE `id`='{$_SESSION['id']}'");