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

  #10211  
Старый 25.04.2009, 13:28
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

Ну куда мне до тебя супер умного, я же забыл что в MySQL есть оператор unтра-та-таion и seтра-та-таlect:

PHP код:

$array_search
=array('union','select','group','orde  r','limit');
$input="http://site.ru/script.php?id=1+uniunionon+seselectlect+1";
echo 
str_ireplace($array_search,'тра-та-та',$input,$count); 

http://site.ru/script.php?id=1+uniтра-та-таon+seтра-та-таlect+1 
 
Ответить с цитированием

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

Репутация: 3313


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

Byrger, зачем так делать?
--Фильтрация для числовых значений:
PHP код:
$id = (int)$_GET['id']; 
--Фильтрация для буквенных значений:
PHP код:
$text mysql_escape_string(get_magic_quotes()?stripslashes($_GET['text']):($_GET['text'])); 
+ не забывай обрамлять эти параметры в кавычки в запросе!!!
и никакой хакер не пройдет.

Последний раз редактировалось Chaak; 25.04.2009 в 13:46..
 
Ответить с цитированием

  #10213  
Старый 25.04.2009, 13:30
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


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

Вот вам функция , которой достаточно в 99% случаев.
PHP код:
function db_prepare($arg){
    global 
$db_c;

    if(
is_numeric($arg)){
        return 
"'".$arg."'";
    }else if(
is_string($arg)){
        return 
"'".mysql_real_escape_string($arg$db_c)."'";
    }else{
        return 
"''";
    }

Где $db_c это переменная-ресурс коннекта к БД

ну или вообще убрать его
PHP код:
function db_prepare($arg){
    if(
is_numeric($arg)){
        return 
"'".$arg."'";
    }else if(
is_string($arg)){
        return 
"'".mysql_real_escape_string($arg."'";
    }else{
        return 
"''";
    }

что такое 1% это внесение в БД файлов и всякой нестандартной всячины.

Перез использованием данной фунции должно быть установлено соединение с БД.

Запрос выглядит так
$query = "SELECT a,b,c,d FROM XXXX WHERE id=".db_prepare($id)." order by 1";

то есть параметр сам будет обрамлятся кавычками, в запросе их писать не надо.

Юзайте и будет вам счастье.
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!

Последний раз редактировалось SQLHACK; 25.04.2009 в 13:33..
 
Ответить с цитированием

  #10214  
Старый 25.04.2009, 13:32
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


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

Цитата:
Сообщение от PaCo  
Ну куда мне до тебя супер умного, я же забыл что в MySQL есть оператор unтра-та-таion и seтра-та-таlect:

PHP код:

$array_search
=array('union','select','group','orde  r','limit');
$input="http://site.ru/script.php?id=1+uniunionon+seselectlect+1";
echo 
str_ireplace($array_search,'тра-та-та',$input,$count); 

http://site.ru/script.php?id=1+uniтра-та-таon+seтра-та-таlect+1 

ебт, ты всунь эту строку в скрипт и скрипт вырежет union и select в середине слов, и в БД пройдут чистые union select
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!
 
Ответить с цитированием

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

Репутация: 3313


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

Цитата:
Сообщение от SQLHACK  
ебт, ты всунь эту строку в скрипт и скрипт вырежет union и select в середине слов, и в БД пройдут чистые union select
здесь идет не удаление юнионов, а их замена на тратата
 
Ответить с цитированием

  #10216  
Старый 25.04.2009, 13:35
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме:
791766

Репутация: 61
По умолчанию

Оо нифига на 2 страницы растянули : )
Спасибо всем.
А как достать строку из браузера которую пользователь вводит?

Последний раз редактировалось Byrger; 25.04.2009 в 13:42..
 
Ответить с цитированием

  #10217  
Старый 25.04.2009, 13:35
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


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

имел ввиду функцию mailbrush'a

2 PaCo:
А твой пример с тратата тупо будет заплевывать как как Юзера ошибками, так и БД левыми не рабочими запросами


Действительно куда тебе до меня супер умного ))))
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!

Последний раз редактировалось SQLHACK; 25.04.2009 в 13:38..
 
Ответить с цитированием

  #10218  
Старый 25.04.2009, 13:38
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

2 PaCo:

$input="http://site.ru/script.php?id=1+%75%6E%69%6F%6E+%73%65%6C%65%63%74 +1";

реальный пример:

Код:
http://www.cz-usa.com/product_detail.php?id=-7+%75%6E%69%6F%6E+%73%65%6C%65%63%74+1,2,3,4,version(),6/*
усовершенствуй код, и я его опять обойду, но уже за деньги
 
Ответить с цитированием

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

Репутация: 3313


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

Цитата:
Сообщение от Byrger  
Оо нифига на 2 страницы растянули : )
Спасибо всем.
А как достать строку из праузера которую пользователь вводит?
PHP код:
echo htmlspecialchars($_SERVER['SCRIPT_URI']); 
не забывай , если в базу заносишь фильтрацию на кавычки

На JavaScript:
PHP код:
alert(document.location.href); 
SQLHACK, твой код тоже уязвим для мультибайтовых кодировок из-за ошибки в mysql_real_escape_string
жмяк

Последний раз редактировалось Chaak; 25.04.2009 в 13:47..
 
Ответить с цитированием

  #10220  
Старый 25.04.2009, 13:48
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

Цитата:
Сообщение от Pashkela  
2 PaCo:

$input="http://site.ru/script.php?id=1+%75%6E%69%6F%6E+%73%65%6C%65%63%74 +1";

реальный пример:

Код:
http://www.cz-usa.com/product_detail.php?id=-7+%75%6E%69%6F%6E+%73%65%6C%65%63%74+1,2,3,4,version(),6/*
усовершенствуй код, и я его опять обойду, но уже за деньги
Не хочу тебя растраивать но данные пришедшие из вне уже будут будут преобразованны в нормальный вид(попробуй зделать echo $_GET['id']) ), и если не делать повторного преобразования в коде то это НИЧЕГО НЕ ДАСТ, Byrger спросил как зделать так и так и я ответил, конечно же самый разумный вариант это проверка данный на соответсвия их типу прежде чем вставлять их в гвери.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ