Тема: инъекция (Общение/Заработок) Zed (24 Feb 2014 в 23:09) Норм всё.my_esc() экранирует Юрий (24 Feb 2014 в 23:10) VoronoZ, ага, теперь ясно)) ЗЕЛЕНЫЙ ШЕРШЕНЬ (24 Feb 2014 в 23:22) Да, все норма:) Юрий (24 Feb 2014 в 23:28) --Цитата-- ЗЕЛЕНЫЙ ШЕРШЕНЬ (24 Feb 2014 в 23:22): Да, все норма:) ---------- Mark, спасибо) Юрий (24 Feb 2014 в 23:31) Mark, а вот здесь mysql_query(\"UPDATE `chat_rooms` SET `name` = \'$name\', `opis` = \'[red]$opis[/red]\', `pos` = \'$pos\', `umnik` = \'$umnik\', `shutnik` = \'$shutnik\', `anagrama` = \'$anagrama\' WHERE `id` = \'$room[id]\' LIMIT 1\"); есть?:) ЗЕЛЕНЫЙ ШЕРШЕНЬ (24 Feb 2014 в 23:55) Юрий, если переменные не отфильтрованы то думаю есть в $name $opis $pos $umnik $shutnik $anagrama дырки, покажи их определение Юрий (24 Feb 2014 в 23:56) Mark, $opis=my_esc($_POST[\'opis\']); $pos=intval($_POST[\'pos\']); if ($_POST[\'bots\']==4)$anagrama=1;else $anagrama=0; if ($_POST[\'bots\']==1 || $_POST[\'bots\']==3)$umnik=1;else $umnik=0; if ($_POST[\'bots\']==2 || $_POST[\'bots\']==3)$shutnik=1;else $shutnik=0; mysql_query(\"UPDATE `chat_rooms` SET `name` = \'$name\', `opis` = \'$opis\', `pos` = \'$pos\', `umnik` = \'$umnik\', `shutnik` = \'$shutnik\', `anagrama` = \'$anagrama\' WHERE `id` = \'$room[id]\' LIMIT 1\"); ну здесь экранизация, я так понимаю? Юрий (24 Feb 2014 в 23:57) это обычный чат социала если что Юрий (25 Feb 2014 в 00:00) mysql_query(\"UPDATE `chat_rooms` SET `name` = \'\".mysql_real_escape_string($name).\"\', `opis` = \'\".mysql_real_escape_string($opis).\"\', `pos` = \'\".mysql_real_escape_string($pos).\"\', `umnik` = \'\".mysql_real_escape_string($umnik).\"\', `shutnik` = \'\".mysql_real_escape_string($shutnik).\"\', `anagrama` = \'\".mysql_real_escape_string($anagramma).\"\' WHERE `id` = \'$room[id]\' LIMIT 1\"); а что так надо сделать.лол. ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:01) --Цитата-- Юрий (24 Feb 2014 в 23:56): Mark, $opis=my_esc($_POST[\'opis\']); $pos=intval($_POST[\'pos\']); if ($_POST[\'bots\']==4)$anagrama=1;else $anagrama=0; if ($_POST[\'bots\']==1 || $_POST[\'bots\']==3)$umnik=1;else $umnik=0; if ($_POST[\'bots\']==2 || $_POST[\'bots\']==3)$shutnik=1;else $shutnik=0; mysql_query(\"UPDATE `chat_rooms` SET `name` = \'$name\', `opis` = \'$opis\', `pos` = \'$pos\', `umnik` = \'$umnik\', `shutnik` = \'$shutnik\', `anagrama` = \'$anagrama\' WHERE `id` = \'$room[id]\' LIMIT 1\"); ну здесь экранизация, я так понимаю? ---------- Юрий, да, все в норме.. Как я понял, в дцмс функция my_esc() это- mysql_real_escape_string() тоесть, эта функция фильтрует ТЕКСТ перед записью в базу, чтобы скл инъекцию убрать.) ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:02) --Цитата-- Юрий (25 Feb 2014 в 00:00): mysql_query(\"UPDATE `chat_rooms` SET `name` = \'\".mysql_real_escape_string($name).\"\', `opis` = \'\".mysql_real_escape_string($opis).\"\', `pos` = \'\".mysql_real_escape_string($pos).\"\', `umnik` = \'\".mysql_real_escape_string($umnik).\"\', `shutnik` = \'\".mysql_real_escape_string($shutnik).\"\', `anagrama` = \'\".mysql_real_escape_string($anagramma).\"\' WHERE `id` = \'$room[id]\' LIMIT 1\"); а что так надо сделать.лол. ---------- Юрий, без разницы, одно и тоже) Юрий (25 Feb 2014 в 00:03) --Цитата-- ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:01): Юрий, да, все в норме.. Как я понял, в дцмс функция my_esc() это- mysql_real_escape_string() тоесть, эта функция фильтрует ТЕКСТ перед записью в базу, чтобы скл инъекцию убрать.) ---------- Mark, ну понятно)) спасибо за инфу ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:03) Юрий, числа фильтруют через intval(), ну тут их не зачем фильтровать) Юрий (25 Feb 2014 в 00:13) --Цитата-- ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:03): Юрий, числа фильтруют через intval(), ну тут их не зачем фильтровать) ---------- Mark, ок)) saSHАDE (25 Feb 2014 в 01:03) --Цитата-- ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 00:03): Юрий, числа фильтруют через intval(), ну тут их не зачем фильтровать) ---------- Mark, intval() - не панацея, даже те же самые числа она режет на ура. Читайте маны. intval - получает [b]целочисленное значение[/b] переменной. Не надо с самого начала вводить в заблуждение новичков. K_2 (25 Feb 2014 в 07:55) учимся дыры латать ?:) ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 07:58) saSHADE, ну да ну да, не пропускает текст, только числа, если ввести например \"тест\" выдаст \"0\", о чем я и хотел сказать. saSHАDE (25 Feb 2014 в 09:08) Mark, в том то и проблема, а если мне надо передать 0.5? intval выдаст почему-то 0. А теперь просто вопрос echo intval((0.1+0.7) * 10); Что вернет? А если проверить? А почему так? ЗЕЛЕНЫЙ ШЕРШЕНЬ (25 Feb 2014 в 11:50) saSHADE, 0 tramors (25 Feb 2014 в 13:18) я конечно дико извиняюсь мне непонятен один момент о какой иньекции речь? о внутривенной или внутримышечной? приход то разный:D saSHАDE (25 Feb 2014 в 14:27) Mark, ты явно даже не пытался проверить. Engine (25 Feb 2014 в 14:39) --Цитата-- saSHАDE (25 Feb 2014 в 09:08): Mark, в том то и проблема, а если мне надо передать 0.5? intval выдаст почему-то 0. А теперь просто вопрос echo intval((0.1+0.7) * 10); Что вернет? А если проверить? А почему так? ---------- saSHADE, вернет 8 :) Engine (25 Feb 2014 в 14:40) А если убрать внутренние скобки, то 7 saSHАDE (25 Feb 2014 в 14:40) Genocide, а если проверить, то вообще охренеешь =) Engine (25 Feb 2014 в 14:52) saSHADE, fack! Почему 7 в обоих случаях выводится? saSHАDE (25 Feb 2014 в 14:56) Genocide, Такова жизнь =) Есть еще много таких приколов, как нибудь потом расскажу. Saint (25 Feb 2014 в 15:14) --Цитата-- Engine (25 Feb 2014 в 14:52): saSHADE, fack! Почему 7 в обоих случаях выводится? ---------- Genocide, округляется по тому что . вообще прочтение монуала сокращает время изучение функции к минимума ) ------- Для таких целей используйте number_format() пример из того что ниже echo number_format( 0.1 + 0.7 * 10 , 1 ); //7.1 выведет . saSHАDE (25 Feb 2014 в 15:23) Saint, но именно мой пример ты не объяснил =) echo intval((0.1+0.7) * 10); Saint (25 Feb 2014 в 15:35) saSHADE, ниже постом вроде как ) saSHАDE (25 Feb 2014 в 15:37) Saint, нет, там без скобок, а со скобками вывод как раз таки вообще не ожидаемый. saSHАDE (25 Feb 2014 в 15:40) Вот еще примеры работы intval(). Хоть оно и описано в примерах на php.ru, но мало кто это читал. echo intval( (0.1+0.7) * 10 ); // выводит 7! echo intval( ( (0.1+0.7) * 10 ) + 1 - 1); // выводит 8! echo intval( ( (0.1+0.7) * 10 ) * 1); // выводит 7! echo intval( ( (0.1+0.7) * 10 ) . \'\' ); // выводит 8! Saint (25 Feb 2014 в 15:41) saSHADE, ну так порядок решения при скобках выполняет сначала решения в них на сколько я помню) могу объяснить разъяснение и по порядку решения на пальцах но смысл ? выше описал ))) >ps да и десятка целое число) да и в математике не особо силен я ) Jvk35 (25 Feb 2014 в 17:44) my_esc() это функция дцмс тоесть mysql_real_escape_string() можно ее посмотреть здесь sys/inc/fnc.php :) Это сканером ищиш? :) Источник: http://www.dcms-social.ru/forum/14/7/16565/