[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Какой либо обход этих функций
Страницы: 1, 2
Vano
Привет
Числа фильтрую intom - $chislo=(int)$_GET['chislo'];
Все остальные данные - $text=mysql_real_escape_string($_GET['text']);

Возможен ли хоть какой то обход данной защиты?
inpost
Это защита от sql-inj, и защищает нормально! От остальных уязвимостей не защищает.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Vano
Цитата (inpost @ 5.04.2013 - 05:22)
Это защита от sql-inj, и защищает нормально!

В каком смысле нормально? она оптимально защищает от инъекций? - возможен обход mysql_real_escape_string или int или нет? Допустим текст в байтах какихто передать в базу тем самым обойдя данные функции и провести inj
Michael
Vano, sql иньекция - это манипулирование текстом sql запроса, а не какие то байты в базе. От sql-inj вышеупомянутое защищает окей.

_____________
There never was a struggle in the soul of a good man that was not hard
Vano
Цитата (Vano @ 5.04.2013 - 05:56)
Цитата (inpost @ 5.04.2013 - 05:22)
Это защита от sql-inj, и защищает нормально!

В каком смысле нормально? она оптимально защищает от инъекций? - возможен обход mysql_real_escape_string или int или нет? Допустим текст в байтах какихто передать в базу тем самым обойдя данные функции и провести inj

Понял спасибо, а если в пхп.ини чтото не то прописано - допустим отключена функция волшебных кавычек, либо включена - это не повлият на работу mysql_real_escape_string ?
inpost
магические кавычки лишь добавят в результат лишние слеши, ничего более. При выводе ты получишь нечто вроде: \"Hello mr.M\'Donald\" , что не будет уязвимостью SQL, а простой корявостью

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Vano
Цитата (inpost @ 5.04.2013 - 09:23)
магические кавычки лишь добавят в результат лишние слеши, ничего более. При выводе ты получишь нечто вроде: \"Hello mr.M\'Donald\" , что не будет уязвимостью SQL, а простой корявостью

Отлично, спасибо большое за ответы!
killer8080
Цитата (Vano @ 5.04.2013 - 02:15)
Числа фильтрую intom - $chislo=(int)$_GET['chislo'];

что и дробные то же? smile.gif
Да и с целыми то же не всегда можно приведение типов использовать.
Vano
Цитата (killer8080 @ 5.04.2013 - 10:12)
Цитата (Vano @ 5.04.2013 - 02:15)
Числа фильтрую intom - $chislo=(int)$_GET['chislo'];

что и дробные то же? smile.gif
Да и с целыми то же не всегда можно приведение типов использовать.

Где дробные - регулярками. Удаляю все кроме . и цифр потом *1
rooor
Цитата
Удаляю все кроме .

а если будет запятая?
Vano
Цитата (rooor @ 5.04.2013 - 11:11)
Цитата
Удаляю все кроме .

а если будет запятая?

Запятые не нужны
killer8080
Цитата (Vano @ 5.04.2013 - 08:48)
Где дробные - регулярками. Удаляю все кроме . и цифр потом *1

вообще то кроме (int) еще есть (float) tongue.gif
Цитата (rooor @ 5.04.2013 - 09:11)
а если будет запятая?

а если будет запятая, то это будет уже не флоат, в целях юзабилити можно автоматически подменять на точку.
Vano
Еще один вопрос, нашел один сайтик который проверяет скрипты онлайн на уязвимости (инъекции и xss), проверив один php скрипт - сайт прописал уязвимость моему скрипту (инъекция)

$names =$_POST['name'];
$names2 = preg_replace('%[^ a-zA-ZА-Яа-я]+%', '', $names);
mysql_query("UPDATE `users` SET `name_us`='$names2' WHERE `id`='{$_SESSION['id']}'");

Не пойму почему он говорит что это уязвимость - все удалилось из пост запроса кроме пробела русских английских букв и цифр - разве можно составить какой то запрос чтобы инъекция сработала?
Vano
И еще один вопрос -

include_once ($_SERVER['DOCUMENT_ROOT'].'/file/include.php');

Пишет что это тоже уязвимость (Active script)
(Вам нужно программно проверять данный $_SERVER['DOCUMENT_ROOT'] параметр)
Зачем проверять программно $_SERVER['DOCUMENT_ROOT'] параметр?
Vano
По поводу $_SERVER['DOCUMENT_ROOT'] = http://домен.com?_SERVER['DOCUMENT_ROOT']=значение изменить нельзя, так что можно не считать уязвимостью $_SERVER['DOCUMENT_ROOT'] верно?
По поводу preg_replace - читал инфу о подставление php кода в данную функцию но это если существует в ней модификатор «e», так как его нет уязвимостью это считать нельзя?

$names =$_POST['name'];
$names2 = preg_replace('%[^ a-zA-ZА-Яа-я]+%', '', $names);
mysql_query("UPDATE `users` SET `name_us`='$names2' WHERE `id`='{$_SESSION['id']}'");

То есть взломать не как нельзя? а то у меня на этой функции пол сайта держится...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.