Как себя защитить если register globals=on

Discussion in 'PHP' started by Zircool, 10 Dec 2008.

  1. Zircool

    Zircool Elder - Старейшина

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Здравствуйте. Столкнулся с такой проблемой как уязвимость в register globals, можно менять значения некоторых переменных, в результате пострадали некоторые из моих скриптов((. Можно ли с использованием register globals=on добавить дополнительное условие проверки переменных или как себя можно обезопасить. Полезной будет любая информация по теме. Заранее благодарен.
     
  2. MuXaJIbI4

    MuXaJIbI4 Member

    Joined:
    20 Nov 2008
    Messages:
    66
    Likes Received:
    7
    Reputations:
    0
    Просто отключить регистр гллобалс ;) Но можно просто в начале скриптов объявлять все переменные которые используются в скрипте.
     
    1 person likes this.
  3. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    register globals=off
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    .htaccess

    <IfModule php5_module>
    php_value session.gc_maxlifetime 7200
    php_value max_execution_time 3600
    php_value max_input_time 3600

    php_flag register_globals off
    php_flag magic_quotes_gpc off
    </IfModule>
     
  5. ruzzer

    ruzzer Elder - Старейшина

    Joined:
    29 Jul 2007
    Messages:
    43
    Likes Received:
    10
    Reputations:
    3
    Все доступные значения переменных можно записать в массив, и сравнивать их с этим массивом.
    Code:
    <?php 
    				if (!isset($page))
    					{
    						include "news.php";
    					}
    					else
    					{
    					$pages = array('main', 'articles', 'articles2', 'news', 'href', 'guest', 'download');
    					
    						if(in_array($page, $pages))
    						{
    							include($page.".php");
    						}
    						else
    						{
    							echo "Нет такой страницы! ";
    						}
    					}
    			?>