[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вопрос по защите
maximka787
Мужики, скажите, вот делаю сайт и очень долго делать в нем проверки GET переменных, и решил создать вот такую конструкцию. Скажите, она защитит на 100% проникновение инъекций или еще чего в код?
if(preg_match( '/[^0-9a-zA-Z\/.]/', $url )){
exit;
}

то есть разрешил только английские символы, точку и слэш /

_____________
..Работает - не трогай!
Mirexzpalich
нет, не защитит.... Так как точку тоже надо экранировать... А то получается любой символ =)

preg_match( '/[^0-9a-zA-Z\/\.]/', $url )

А еще лучше, на мой взгляд:

function inectionGet($url)
{
if(is_array($url))
{
$arr = array();
foreach($url as $key=>$value)
$arr[$key] = inectionGet($value);
return $arr;
}
else
return
preg_replace( '/[^0-9a-zA-Z\/\.]/','', $url );
}


_____________
Дорогу осилит идущий...
maximka787
Mirexzpalich
спасибо, понял. хотя проверял, любые символы не пускает тоже и не экранированная точка

_____________
..Работает - не трогай!
Mirexzpalich
maximka787
Хм... надо будет поэксперементировать... может из-за [] воспринимается как точка, а не спецсимвол =)

_____________
Дорогу осилит идущий...
maximka787
А кстати надо экранировать тире?

preg_match( '/[^0-9a-zA-Z\/\.-]/', $url )


_____________
..Работает - не трогай!
Mirexzpalich
maximka787
Если поставить в начале - то нет... А так - не скажу

_____________
Дорогу осилит идущий...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.