[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форматирование URL`a сайта
Shkiper
Всем ЗдАровкА. КОроче уже раз 10(говорю не в буквальном, а прямом смысле) писал паттерны и наступал на одни и те же грабли. Допустим у меня по урлу определяется какой контроллер нужно грузить. Но вдруг он что-то там намудрил(кул хачкер) и у меня может либо что-то "полететь", либо выдаст не то что надо. Я пока что сделал только вот что:
function url_handler($url_string, $data)
{
if(preg_match("#\.\.\/#", $url_string) && $data['bottom_folder'] == true)
{
$url_string = str_replace("../", "", $url_string);
}


return $url_string;
}

То есть если мы найдем где нибудь выход их папки то мы его сразу уберем. $data['bottom_folder'] я сделал для того, чтобы проверят если мне не нужно выходит здесь или нет с папки. Что можно еще сделать. Защита от MySQLI инъекций приветствуется :)
SlavaFr
Цитата (Shkiper @ 4.12.2012 - 11:17)
Всем ЗдАровкА. КОроче уже раз 10(говорю не в буквальном, а прямом смысле) писал паттерны и наступал на одни и те же грабли. Допустим у меня по урлу определяется какой контроллер нужно грузить. Но вдруг он что-то там намудрил(кул хачкер) и у меня может либо что-то "полететь", либо выдаст не то что надо. Я пока что сделал только вот что:
function url_handler($url_string, $data)
  {
      if(preg_match("#\.\.\/#", $url_string) && $data['bottom_folder'] == true)
  {
      $url_string = str_replace("../", "", $url_string);
  }
 
     
  return $url_string;
  }

То есть если мы найдем где нибудь выход их папки то мы его сразу уберем. $data['bottom_folder'] я сделал для того, чтобы проверят если мне не нужно выходит здесь или нет с папки. Что можно еще сделать. Защита от MySQLI инъекций приветствуется  :)

1) почему функция называется url_handler когда она является фильтром?
2) твой prag_match в данном коде обсалютно не уместен,
   
if( $data['bottom_folder'] == true) {
$url_string = str_replace("../", "", $url_string);
}

делает то же самое.

3) устроит ли тебя действительно неправильная урл после того как у нее будет отрезано "../" ?
наверное лучше зделать валидатор и контролировать дополнительно существует ли файл с подходящим контроллером в папках которые специально созданы для контроллеров.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Shkiper
SlavaFrа мне кажется так лучше. но подумаю. что еще можно сделать?
Быстрый ответ:

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