Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: нормальное ли подключение модуля?

Сообщения:  [1-5] 

 
 автор: DEM   (21.11.2009 в 14:00)   письмо автору
 
   для: cheops   (21.11.2009 в 12:31)
 

спасибо! Тоже об этом думал, вы подтвердили мои догадки... значит добавлю эту обработку, а то аписал я это давно и использую во всех проектах, а тут бац и пришла в голову мысль, что это может быть небезопасно :)

  Ответить  
 
 автор: cheops   (21.11.2009 в 12:31)   письмо автору
 
   для: DEM   (21.11.2009 в 08:04)
 

Собственно сразу чужой код использовать нельзя, но вот в параметр $mod, можно загрузить конструкции вида ../../../ и это никак не обрабатывается.

  Ответить  
 
 автор: DEM   (21.11.2009 в 08:04)   письмо автору
 
   для: cheops   (14.11.2009 в 12:53)
 

Но безопасно ли это?
Или как-то можно взломать?

  Ответить  
 
 автор: cheops   (14.11.2009 в 12:53)   письмо автору
 
   для: DEM   (09.11.2009 в 21:48)
 

Собственно, если работает, то нормально.

  Ответить  
 
 автор: DEM   (09.11.2009 в 21:48)   письмо автору
 
 

<?php
function bez($str)
{
  
$str trim($str);
    if (!
get_magic_quotes_gpc())
    {
      
$str =  mysql_escape_string($str);
    }
  return 
$str;
}

function 
html($str)
{
  
$str trim($str);
    
$str htmlspecialchars($strENT_QUOTES);
    return 
$str;
}

function 
include_modules($razdel$mod="")
{
  
$razdel bez($razdel);
  
$mod html($mod);
  
$razdel_prov_query mysql_query("SELECT * FROM `".PR."modules` WHERE `razdel`='".$razdel."'");
  if(
mysql_num_rows($razdel_prov_query) == 0)
  {
      
include_modules("news_index");
  }
  else
  {
    if(!empty(
$mod))
      include_once 
"modules/".$razdel."/".$mod.".php";
    else
      include_once 
"modules/".$razdel."/index.php";
  }
}
?>

Функция получает два параметра НАЗВАНИЕ РАЗДЕЛА и ПОДМОДУЛЬ (то есть есть в модуле не только есть index.php, но и другие страницы, то этот параметр отвечает за него).
Есть таблица в которой занесены все активные модули, если модуля нет, то вывести стандартный модуль (новости). Скажите, нормально ли я подключаю эти модули или правильно делать как-то иначе?

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования