ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 05.01.2007, 19:18
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Ну вы и норкоманы.... определенно начитались Фленова =)
Я подобное Г только у него в книге видел =)

Нормальный код(практически) в этой теме только у p-range. Остальные просто не понимают, что делают.
 
Ответить с цитированием

  #22  
Старый 05.01.2007, 20:04
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Вооооот: http://forum.antichat.ru/thread30641.html
 
Ответить с цитированием

  #23  
Старый 26.10.2008, 19:26
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

Цитата:
Сообщение от b3  
Нужно указывать ТИП переменной а не фильтровать её, как понял я. Хотя в РНР я не силен.
Вот еще способ :
Код:
//Режем слеши
 $text = stripslashes($text);
//Режем хтмл
 $text = htmlspecialchars($text);
//Убираем символ новой строки
 $text = ereg_replace("\n", " ", $text);
//Убираем символ новой строки (windows-формат)
 $text = ereg_replace("\r", "", $text);
//Убираем символы открывающие любые тэги
 $text = ereg_replace("<", "", $text);
 $text = ereg_replace(">", "", $text);
//Убираем символы похожие на сепаратор =)
 $text = ereg_replace("::", "", $text);
Твой ерег оборвется на null - байте =\
Лучше уж прегматч использовать
 
Ответить с цитированием

  #24  
Старый 26.10.2008, 23:14
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

PHP код:
$blabla is_numeric($_REQUEST['blabla']) ? $_REQUEST['blabla'] : mysql_escape_string($_REQUEST['blabla']); 
Неужели ещё что то нужно?
 
Ответить с цитированием

  #25  
Старый 26.10.2008, 23:38
EXSlim
Познающий
Регистрация: 09.10.2006
Сообщений: 92
Провел на форуме:
347686

Репутация: 87
Отправить сообщение для EXSlim с помощью ICQ
По умолчанию

Цитата:
Сообщение от .Slip  
PHP код:
$blabla is_numeric($_REQUEST['blabla']) ? $_REQUEST['blabla'] : mysql_escape_string($_REQUEST['blabla']); 
Неужели ещё что то нужно?
Определенно да. is_numeric проверяет принадлежность числовому диапазону, включая флоаты. Тоисть попади переменная вторым аргументом в mysql_array, получим раскрытие пути

Кстати, mysql_escape_string, как и все ф-ции mysql_* юзают апи mysql сервера, тоисть требуют аккаунт и подключение к субд. Вместо этого нашел офигенную штуку в zf
PHP код:
protected function _quote($value)
    {
        if (
is_int($value)) {
            return 
$value;
        } elseif (
is_float($value)) {
            return 
sprintf('%F'$value);
        }
        return 
"'" addcslashes($value"\000\n\r\\'\"\032") . "'";
    } 
З. Ы. Гуглите о prepared statement. Все уже придумано до вас

Последний раз редактировалось EXSlim; 26.10.2008 в 23:51..
 
Ответить с цитированием

  #26  
Старый 26.10.2008, 23:50
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Цитата:
Сообщение от EXSlim  
Определенно да. is_numeric проверяет принадлежность числовому диапазону, включая флоаты. Тоисть попади переменная вторым аргументом в mysql_array, получим раскрытие пути
Цитата:
Сообщение от http://php.su/functions/?mysql_fetch_array  
Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные соответствия (аналогично функции mysql_fetch_assoc() и MYSQL_NUM только численные (аналогично функции mysql_fetch_row()).
Какой возвращать массив - это уже решает программист. Не думаю что пользователю будет предложено сделать выбор в запросах gpc.

Цитата:
Сообщение от EXSlim  
Кстати, mysql_escape_string, как и все ф-ции mysql_* юзают апи mysql сервера, тоисть требуют аккаунт и подключение к субд.
Вот это вообще не понял. Это равносильно: "Что бы поехать на велосипеде, нужны ноги. Но мы сделаем по другому."
 
Ответить с цитированием

  #27  
Старый 27.10.2008, 00:00
EXSlim
Познающий
Регистрация: 09.10.2006
Сообщений: 92
Провел на форуме:
347686

Репутация: 87
Отправить сообщение для EXSlim с помощью ICQ
По умолчанию

Цитата:
Сообщение от .Slip  
Какой возвращать массив - это уже решает программист. Не думаю что пользователю будет предложено сделать выбор в запросах gpc.
тьфу. имел ввиду mysql_result


Цитата:
Вот это вообще не понял.
Дело в производительности. Представь себе кой нибудь средний нагруженый проект ~50 запросов в секунду. Кроме самого запроса на выборку/апдейт/удалейние и т.д. скрипт ещё 50 раз дергнет mysql чтоб он заэскейпил твою переменню. И это только за 1 запрос
 
Ответить с цитированием

  #28  
Старый 27.10.2008, 00:04
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
скрипт ещё 50 раз дергнет mysql чтоб он заэскейпил твою переменню
Что?)
 
Ответить с цитированием

  #29  
Старый 27.10.2008, 00:06
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

мдээ...
Читайте статью от нерезуса. И не нужны какие-нибудь сверх способы устранения всех уязвимостей сразу.
 
Ответить с цитированием

  #30  
Старый 27.10.2008, 00:17
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

>> Представь себе кой нибудь средний нагруженый проект ~50 запросов в секунду. Кроме самого запроса на выборку/апдейт/удалейние и т.д. скрипт ещё 50 раз дергнет mysql чтоб он заэскейпил твою переменню. И это только за 1 запрос

Переменная обработалась один раз в начале скрипта. Хоть запросов будет миллион, какая разница?

>> тьфу. имел ввиду mysql_result

Да тоже самое по сути. Тут идёт речь о защите от скуль инъекций, и о том в каком виде надо давать данные на запрос. Про аргументы функций тут речь не идёт.

Последний раз редактировалось .Slip; 27.10.2008 в 00:19..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
SQL инъекция и Oracle, часть 2 k00p3r Чужие Статьи 0 13.06.2005 11:24
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ