Защита сайта

Статус
В этой теме нельзя размещать новые ответы.
антихак готовый поставь, от damagelab.org даже.
 
Блин. Вот замороты.
А тупо чистить значения переменных не пробовали ?
PHP:
define('MQGPC',get_magic_quotes_gpc());

/**
 * Imports value from array and cleans it out
 * 
 * @param array $array Source array
 * @param string $key Key
 * @param string $mode String mode
 * @param string $maxdig Return limiter
 * @return string
*/
function val_import( $array, $key, $mode='AL', $maxdig=0 ) {
    if(!isset($array) || !isset($array[$key]) || !is_array($array)) return false;
    switch($mode)
        {
        case 'AL':
        $v = alphaonly($array[$key]);
        break;
     
        case 'NU':
        $v = numericonly($array[$key]);
        break;
 
        case 'TXT':
        $v = textonly($array[$key]);
        break;

        case 'SYM':
        $v = sympholsonly($array[$key]);
        break;

        case 'MIX':
        $v = trim($array[$key]);
        if(!eregi('<',$v))
            { 
            continue;
            }
            else
            {
            return false;
            }
        break;
        
        case 'RAW':
            $v = trim($array[$key]);
        break;
        }

    if(defined('MQGPC')) 
        { $v = stripslashes($v); }
    if($maxdig)
        { $v = substr($v,0,$maxdig); }
    return $v;
    }

/**
* function textonly
* @param input text
*/
function textonly($text) {
    return(preg_replace('/[^a-zA-Z_]/', '', $text));
}

/**
* function sympholsonly
* @param input text
*/
function sympholsonly($text) {
    return(preg_replace('/[^!-*-@^_]/', '', $text));
}

/**
* function numericonly
* @param input text
*/
function numericonly($text) {
    return(preg_replace('/[^0-9_]/', '', $text));
}

/**
* function alphaonly
* @param input text
*/
function alphaonly($text) {
    return(preg_replace('/[^a-zA-Z0-9_]/', '', $text));
}
 
Так он вроде больше не развивается?! А последняя версия выпущена несколько лет назад.
 
совсем недавно работал над данной проблемой, и нашел что с PHP 5.2
появление функций
PHP:
filter_input_array() и filter_var_array()
весьма облегчают задачу фильтрования данных получаемых с формы,
вот в этой теме я искал методы рещения и получения данных пакетным образом и не писал 20-30 проверок на форму которая содержит 20-25 полей
Для просмотра ссылки Войди или Зарегистрируйся
там же есть пример использования данных функций, я же теперь дорабатываю аналог этих фенкций для совместимости с версиями ниже 5.2))
 
Использую mod_rewrite+регулярка проверки разрешаю только[a-z_-0-9] и все, остальных послаю на 3 числа - 4 0 4 :D
 
Чтобы не спи... ваш сайт делаем проще:
1. На папки ставим права чтобы нельзя было файлы туда лить
2. Если все-таки есть папка аплоада файлов в ней отключаем php при помощи .htaccess и ему задаем права чтобы нельзя было удалить и перезаписать.

содержание файла .htaccess

3. Если вы включаете полный "paranoid mode" (режим параноика, кто не в теме), покупаем выделенный сервер под свои проекты, дабы через соседей не взломали, либо юзаем мастерхост, с ним пока туговато по взлому

впринципе все основы защиты, чтобы коды не украли, а вот подбор паролей и тд и тп это уже бред, главное чтобы шелл на сервер не залили, а если и зальют чтобы не смогли выполнить.

P.S. а вот про регулярки и мод_реврайт в Зачет, так меня еще никто не смешил. NoN, чисто чтобы еще поржать, как еще защищаешься?

P.S.S. есть еще масса способов защиты и оповещения админа о попытках взлома или взломе, но это уже отдельные разговоры и для каждого проекта бывают свои. Тупо чистить от лишних запросов конечно хорошо, но вот Upload File еще никто не отменял, поэтому решать каждому как защитить свое детище, но основы я описал, они спасут практически любого, если нет "дырявых" соседей на гамнохостинге.

Всем удачи в защите своих проектов ;)
 
+1 за masterhost, защита у них хорошая.
Даже если запись в папки запрещена, то всега есть вероятность дырявости двига. А некоторые публичные двиги позволяют использовать php в создании/изменении статических страниц(php-fusion, koobi). Защита от такого разве что в basic-auth в папке с админкой.
 
Делаю детект на наличие слов, характерных для SQL-инъекций с учетом флага правомерности такой передачи запроса (по сути - локальный флаг для каждого запроса:( (UNION, SELECT, UPDATE, DELETE и т.д.) В случае обнаружения подобной бяки - отправление в ловушку (с записью лога действий пользователя).

Обязательная проверка на наличие конструкций a-ля "./././" если вы включаете файлы, используя данные из принимаемой строки запроса...

Можешь выложить свои наработки по данным вопросам ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху