Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

Что делать, чтобы сайт не взломали

Ответы на вопросы от компании «Украинский хостинг».

Что делать, чтобы сайт не взломали

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

К сожалению, самым распространенным способом взлома является перебор паролей. Очень часто нам приходится сталкиваться с тем, что клиент для доступа к своей административной панели или к FTP ставит элементарные пароли, такие как "12345", "qwerty", "admin", "название сайта", а также даты своего рождения, номер телефона и т.д. Поставив сложный пароль Вы уменьшите вероятность взлома в разы, но существуют и другие уязвимости.

Защита сайта на WordPress

Для примера, рассмотрим защиту сайта для клиентов "Украинского хостинга" | UH.ua, использующих хостинг WordPress.

  1. Необходимо защитить сайт от простейших XSS-инъекций. Это делается путем добавления кода в файл .htaccess:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS (=
    [|%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST (=|[|%[0-9A-Z]{0,2})
    RewriteRule ^(.*)$ index.php [F, L]
    
  2. Ограничение показа лишней информации модифицируя functions.php:
    add_filter('login_errors',create_function('$a', "return null;"));
    
  3. Использование SSL соединения. Нужно добавить в wp-config.php следующее:
    define('FORCE_SSL_ADMIN', true);
    
  4. Скрыть версию WordPress. Делается это в functions.php:
    remove_action('wp_head', 'wp_generator');
    
  5. Защитить wp-config используя .htaccess путем добавления следующих записей:
    order allow, deny
    deny from all
    
  6. Изменить стандартный логин "admin". Для этого выполняется SQL запрос:
    UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'admin';
    
  7. Сделать предварительную аутентификацию для файла wp-login.php:
    $p = "md5_hash_of_pass";
    $u = "Login";
    function a(){
        header('WWW-Authenticate: Basic realm="Administration Area"');
        header('HTTP/1.1 401 Unauthorized');
        if($_SESSION['pre']!=1)
            echo 'Preauthentication required!';
        $_SESSION'['pre']='';
        exit;
    }
    if( !isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) )
        a();
    else if( $_SERVER['PHP_AUTH_USER']==$u && md5($_SERVER['PHP_AUTH_PW'])==$p)
        echo 'Preauthenticated!';
    else{
        echo 'Preauthentication failed!');
        $_SESSION['pre']=1;
        a();
    }
    

Данные действия помогут значительно снизить риск взлома Вашего сайта.

См.также:

Что делать, чтобы сайт не взломали

Помощь
Тикеты