[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как думаете можно ли ломануть сайт через это
GET
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && mb_strtolower($_SERVER['HTTP_X_REQUESTED_WITH'],'UTF-8')=='xmlhttprequest')
{
if (isset($_POST['j'],$_POST['q']))
{
function ex(){exit;}
set_error_handler('ex');
$m=explode(',',$_POST['j']);
$i=1;
foreach ($m as $val)
{
if (preg_match('#^'.$_POST['q'].'#iu',$val) && $i<8)
{
echo '<li onClick="fill(\''.$val.'\');">'.$val.'</li>';
$i++;
}
}
}
else exit;
}else exit;


Это обработчик js.

$_POST['j'] - строка, потом массив по котому идет поиск.
$_POST['q'] - введенная юзером инфа.

Если он введет, например, #, то вылезет ошибка, которая не успее выйти на экран т.к. будет перехвачена set_error_handler('ex'); и потом отправлена в
function ex(){exit;}

Можно ли сделать $_POST['q'] таким, чтоб завершить preg_match и ввести свою команду???

Пробую не могу так сделать.




Спустя 6 часов, 14 минут, 22 секунды (20.06.2012 - 12:26) GET написал(а):
Парни может есть все таки версии какие-нибудь? smile.gif

Спустя 7 минут, 22 секунды (20.06.2012 - 12:34) killer8080 написал(а):
A.B.C.
если патерн формируется динамически, из входных данных, то его положено вначале обработать
preg_match('#^'.preg_quote($_POST['q'], '#').'#iu',$val)

Спустя 3 минуты, 22 секунды (20.06.2012 - 12:37) Игорь_Vasinsky написал(а):
Цитата
Это обработчик js.

в каком смысле?

Цитата
$i++;

это для чё? чтоб скрипт не уснул?

Цитата
Если он введет, например, #,

чёт мне кажется - что он получит еррор о неизвестном модификаторе в php, т.к. ограничители в регулярке у тя аналогичные...


и если чесн - то я вообще не вкурил смысл скрипта... как бы вижу все, читаю, а вообщем - не понял.

UPD:
а вот и киллер экранировал biggrin.gif
Цитата
preg_quote($_POST['q']

Спустя 25 минут, 50 секунд (20.06.2012 - 13:03) GET написал(а):
Игорь_Vasinsky

Цитата
а вот и киллер экранировал 


он все правильно экранировал... smile.gif preg_quote($_POST['q'], '#')

killer8080

Еще раз спасибо!

preg_quote действительно решает проблему!

Спустя 1 минута, 16 секунд (20.06.2012 - 13:04) Игорь_Vasinsky написал(а):
Цитата
он все правильно экранировал

я и не сомневался biggrin.gif


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

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