Введіть ім'я домену:
.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();
    }
    

Ці дії допоможуть значно знизити ризик злому Вашого сайту.

Див. також:

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