[PHP] Общая защита

Discussion in 'Песочница' started by |qbz|, 2 Sep 2010.

  1. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Предлагаю в этом топике писать пхп-функции/скрипты, которые работают на стадии инициализации основного пхп-скрипта и помогают защитить сервер.
    Если криво выразился, то вот мой первый пример, какой я и имел ввиду:

    инклудим в самом начале скрипта, который хотим защитит от раскрытия путей, путем посылки массивов:
    PHP:
    <?php
    function defence_try_directory_traversal($exceptions)
        {
            
    $methods = array($_GET,$_POST,$_COOKIE);
            foreach (
    $methods as $method)
            {
                foreach (
    $method as $variab => $val)
                {
                    if ((
    is_array($val)) && (!in_array($variab,$exceptions)))
                    {
                        return (
    false);
                    }
                }
            }
            return (
    true);
        }
    if (!
    defence_try_directory_traversal(array('tut-pishem-nazvaniya-peremennyx-kotorye-MOGUT-byt-massivom','ili-tut','ili-tut')))
    {
    echo(
    'Hacking attempt');exit;
    }
    ?>
     
  2. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    я передам твоему скрипту 100500 переменных 20 раз в секунду и сервер умрёт. делай выводы.
     
  3. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    а зачем мне делать какие то выводы? то что ты говоришь - это откровенный ддос, а мой скрипт является защитой против раскрытия путей. если нужно решить проблему, о которой ты написал - надо писать другой скрипт. лучше бы защиту написал тогда уж
     
  4. Seravin

    Seravin Active Member

    Joined:
    25 Nov 2009
    Messages:
    475
    Likes Received:
    190
    Reputations:
    221
    а можно вначале скрипта написать error_reporting(0) =)
     
  5. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    Абсолютно бессмысленно.
    Достаточно

    PHP:
    if(!is_array($_GET['var']))
    или error_reporting(0);