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

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

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

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

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

К сожалению, самым распространенным способом взлома является перебор паролей. Очень часто нам приходится сталкиваться с тем, что клиент для доступа к своей административной панели или к 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();
    }
    

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

См.также:

Будь ласка, виберіть мову сайту за промовчанням: