За последние 24 часа нас посетили 38352 программиста и 1722 робота. Сейчас ищет 651 программист ...

как обезопасить подключающий скрипт от атаки

Тема в разделе "PHP для новичков", создана пользователем sc2r2bey, 7 сен 2009.

  1. sc2r2bey

    sc2r2bey Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    есть адресная строка, например index.php?module=service
    по в зависимости от параметров GET подключается тот или иной модуль, как обезопасить подключающий скрипт от атаки

    Код (Text):
    1.  <?php
    2.                
    3.                     // идентификация модуля
    4.                     if(!get_magic_quotes_gpc())
    5.                         {
    6.                              $module = mysql_escape_string($_GET['module']);
    7.                         }
    8.                     else
    9.                         {
    10.                             $module = $_GET['module'];
    11.                         }
    12.  
    13.                     // вызов модуля
    14.                     $link = $module.".php";
    15.                     if (file_exists("include/".$link))
    16.                         {
    17.                             include("include/".$link);
    18.                         }
    19.                     else
    20.                         {
    21.                             echo $error;
    22.                         }
    23.                 ?>
     
  2. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    Вырезка из моего проекта:

    PHP:
    1. <?php
    2.     $modules = array(
    3.                 'admusers',
    4.                 'home',
    5.                 'comp_gallery',
    6.                 'sols_gallery',
    7.                 'company',
    8.                 'terms',
    9.                 'links_cats',
    10.                 'links_prods',
    11.                 'faq',
    12.                 'thank',
    13.                 'solutions',
    14.                 'text_block',
    15.                 'sols_prods',
    16.                 'industries',
    17.                 'request',
    18.                 'employ',
    19.                 'contact',
    20.                 'contacts',
    21.                 'employs',
    22.                 'news',
    23.                 'groups',
    24.                 'subscribe_users',
    25.                 'emails',
    26.                 'text_block2',
    27.                 'ask',
    28.                 'subject'
    29.    );
    30.  
    31.     //loading module if it exists and is accessible
    32.     $module = $_GET['item'];
    33.     if( preg_match("/^\w+$/",$module) and in_array($module,$modules)) {
    34.         if ($module && file_exists("modules/$module.inc.php")) {
    35.             include "modules/$module.inc.php";
    36.         }
    37.     }
    38.  
    39. ?>
     
  3. Silicium

    Silicium Активный пользователь

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    sc2r2bey
    Товарищ Good][Man все верно написал, самая надежная защита - это знать наперед все варианты!