ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 19.09.2007, 19:17
[53x]Shadow
Leaders of Antichat
Регистрация: 25.01.2007
Сообщений: 341
С нами: 10153766

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

Цитата:
Сообщение от groundhog  
Y.Dmitriy, не городи чепухи... Она экранирует только кавычки, слеши и нулевые байты... Если на хосте крутится более-менее продвинутая БД (MySQL 5.X, Oracle и т.д.), то обход экранирования кавычек элементарно организуется через CHAR(...,...,...) или шестнадцатиричное представление - 0x7573657273.
А я с вами не согласен, в полном объеме =\
Если к передаваемой в запрос SQL переменной применяется функция из класса экранирования кавычек, то как правило в самом запросе параметр из этой переменной обрамляется кавычками, например:
PHP код:
...
$res mysql_query("SELECT * FROM 'news' WHERE 'id'='".$id."'");
... 
в результате применение функции SQL - CHAR(...,...,...) или шестнадцатиричного представления для обхода экранирования кавычек, ничего не даст!
Пример сформированного запроса:

Код:
SELECT * FROM 'news' WHERE 'id'= 'CHAR(....)' или '0x.......'
надеюсь вы понимаете, что он не отработает, т.к. MySQL воспримет 'CHAR(....)' или '0x.......' как простые строковые данные, а не функцию.
При этом применение экранирования кавычек в случае, когда параметр (целочисленного типа) не обрамляется кавычками, не имеет смысла для защиты от SQL инъекции, а всего лишь усложняет использование конструкций load_file и into outfile.
 

  #32  
Старый 20.09.2007, 10:06
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами: 9999746

Репутация: 1318


По умолчанию

[53x]Shadow, совершенно с вами согласен, коллега! Вот это нормальная дискуссия, не то что "...заебато экранирует..."! Насчёт нашей проблемы - вот, вы пишете:

Цитата:
...то как правило в самом запросе параметр из этой переменной обрамляется кавычками...
Это, конечно, оно так и есть! В мускле, например... Но, возможно, что программист забыл заключить данный параметр в кавычку (каждый третий ресурс в сети режет кавычки, но при этом не обрамляет кавычками само значение запроса), или, скажем, в Oracle недопустимо использовать для целочисленных полей выражение типа some_id='5', и вот именно в таких местах может пролезть злоумышленник со своим запросом... Поэтому все целочисленные параметры должны преобразовываться с помощью intval, а строковые с помощью регулярных выражений!

Благодарю за приятный разговор!
 

  #33  
Старый 20.09.2007, 19:45
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
С нами: 9920546

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

Цитата:
Сообщение от ShAnKaR  
Цитата:
Сообщение от I-I()/Ib  
В этой статье будут описаны все функции неверное использование которых может привести к уязвимостям в ваших скриптах,
ай врунишка!
Ну помоги написать чтобы были все o_O
__________________
Кто я?..

Последний раз редактировалось I-I()/Ib; 20.09.2007 в 19:47..
 

  #34  
Старый 20.09.2007, 20:04
ShAnKaR
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
С нами: 10960226

Репутация: 1424


По умолчанию

ну вот помогу и скрипты пойдут без багов =( а даже еще на самую вшивенькую яхту не накопил =\ так что вот так.

Последний раз редактировалось ShAnKaR; 20.09.2007 в 20:08..
 
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
#antichat. Логи, лолы. Gh0s7 Болталка 694 07.06.2010 20:01
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41



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


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




ANTICHAT ™ © 2001- Antichat Kft.