Просмотр полной версии : PHP addcslashes() vulnerabilitiy
Евгений Минаев
05.01.2008, 13:01
PHP функция addcslashes экранирует спецсимволы в стиле языка C , является аналогом addslashes с возможностью указывать свой набор символов для экранирования . Некорректно работает с некоторыми спецсимволами , а именно null byte считает концом строки.
echo addcslashes ( "some\0thing" , '\'' );
->some
echo addcslashes ( "some\0thing'" , chr(0).'..\'' );
-> some\000thing\'
-=lebed=-
05.01.2008, 13:23
символы с Ascii менее 32 и более 126 преобразуются в восьмеричное представление.
На выходе должно быть тоже что и на входе:
echo addcslashes ( "some\0thing" , '\'' );
->some\0thing
но \0 нулевой байт интерпретируется как конец стироки, так?
Во втором примере экранируются все символы из диапазона от chr(0) до одинарной кавычки, должно быть на выходе:
echo addcslashes ( "some\0thing'" , chr(0).'..\'' );
-> some000thing\'
, потому как \0 преобразовался в восьмеричное представление 000, а вот почему пропала кавычка? её в аргументе тоже надо было экранировать?
P.S. В тэгах php тут на форуме тоже иногда пропадают экранирующие слэши, лучше в code заключать, потому что я не уверен, что в посте вывелось то, что реально в php выводится...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot