Theo dõi Yestech trên goole news

Bảo mật htaccess wordpress và các code bảo mật

huong dan da ngon ngu shipping title trong wordpress

disable các cấu hình trong wp-config.php

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);

/* Add any custom values between this line and the "stop editing" line. */

define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true );
define( 'AUTOMATIC_UPDATER_DISABLED', true );
define( 'WP_AUTO_UPDATE_CORE', false );
define( 'SCRIPT_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );
define( 'SAVEQUERIES', false );
define('DISALLOW_FILE_INCLUDE', true); // Ngăn chặn tải tệp từ xa

 

htaccess wordpress

# BEGIN WordPress
# Các nội dung nằm giữa "BEGIN WordPress" và "END WordPress" được tạo ra tự động, và chỉ nên được thay đổi thông qua các filter của WordPress. Mọi thay đổi tới thành phần này có thể sẽ bị mất và ghi đè.
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} "MJ12bot" [NC]
RewriteRule .* - [F,L]
RewriteCond %{HTTP_USER_AGENT} "facebookexternalhit" [NC]
RewriteRule .* - [F,L]
RewriteCond %{HTTP_USER_AGENT} "Amazonbot" [NC]
RewriteRule .* - [F,L]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress



# Bảo vệ tệp wp-config.php
<files wp-config.php>
    order allow,deny
    deny from all
</files>

# Bảo vệ thư mục wp-includes
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

# Bảo vệ tệp đọc readme.html và license.txt
<FilesMatch "^(readme\.html|license\.txt)$">
    Order allow,deny
    Deny from all
</FilesMatch>


# Chặn truy cập vào các file nhạy cảm
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>


# Bảo vệ file .log
<Files ~ "\.log$">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

# Bảo vệ các file có phần mở rộng nhạy cảm
<FilesMatch "\.(sql|sh|bash|bat)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

# Chặn các bot xấu dựa trên User-Agent
SetEnvIfNoCase User-Agent "BadBot" bad_bot
Deny from env=bad_bot

# Chặn các yêu cầu với chuỗi SQL Injection
RewriteEngine On
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C) [NC,OR]
RewriteCond %{QUERY_STRING} (\;|%3B) [NC]
RewriteCond %{QUERY_STRING} (base64_encode|union|select|insert|drop|update) [NC]
RewriteRule ^(.*)$ - [F,L]

 

Tìm hiểu thêm  Hướng dẫn active menu on scroll flatsome theme

code php bảo mật wordpress

<?php


// Tắt XML-RPC
add_filter('xmlrpc_enabled', '__return_false');

//Ẩn phiên bản WordPress
remove_action('wp_head', 'wp_generator');

// disable resapi
// Bảo vệ chống tấn công Brute Force qua API
add_filter('rest_authentication_errors', function ($result) {
    if (!empty($result)) {
        return $result;
    }

    if (!is_user_logged_in()) {
        return new WP_Error('rest_forbidden', 'Bạn cần đăng nhập để truy cập API.', ['status' => 401]);
    }

    return $result;
});

//Tắt Pingbacks và Trackbacks
add_filter('xmlrpc_methods', function($methods) {
    unset($methods['pingback.ping']);
    return $methods;
});

// Tắt tính năng hiển thị danh sách tác giả
add_action('template_redirect', 'disable_author_archives');
function disable_author_archives() {
    if (is_author()) {
        wp_redirect(home_url());
        exit;
    }
}


//Giới hạn số lần đăng nhập thất bại
function limit_login_attempts() {
    if (!session_id()) {
        session_start();
    }
    if (isset($_POST['wp-submit'])) {
        $attempts = isset($_SESSION['login_attempts']) ? $_SESSION['login_attempts'] : 0;
        if ($attempts >= 3) {
            wp_die('Bạn đã thử quá nhiều lần. Vui lòng thử lại sau 10 phút.');
        }
        if (wp_authenticate($_POST['log'], $_POST['pwd'])) {
            $_SESSION['login_attempts'] = 0;
        } else {
            $_SESSION['login_attempts'] = $attempts + 1;
        }
    }
}
add_action('login_init', 'limit_login_attempts');


// Bảo vệ chống tấn công bằng cách tiêm mã độc qua URL
if (!empty($_SERVER['REQUEST_URI']) 
&& strpos($_SERVER['REQUEST_URI'], 'eval(') !== false 
|| strpos($_SERVER['REQUEST_URI'], 'base64') !== false) {
    header('HTTP/1.1 403 Forbidden');
    exit;
}

//Tắt thông báo lỗi trong đăng nhập
function no_login_errors() {
    return 'Thông tin đăng nhập không đúng.';
}
add_filter('login_errors', 'no_login_errors');


function block_invalid_user_agent_ajax_requests() {
    // Kiểm tra nếu request là một AJAX request
    if (defined('DOING_AJAX') && DOING_AJAX) {
        // Danh sách các User-Agent không mong muốn
        $blocked_user_agents = array('BadBot', 'MaliciousTool', 'curl', 'wget');

        // Lấy User-Agent của request
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';

        // Kiểm tra nếu User-Agent nằm trong danh sách bị chặn
        if (in_array($user_agent, $blocked_user_agents)) {
            // Trả về lỗi 403 nếu User-Agent không hợp lệ
            wp_die('Access denied: Invalid User-Agent', 'Forbidden', array('response' => 403));
        }
    }
}
add_action('admin_init', 'block_invalid_user_agent_ajax_requests');


function block_suspicious_requests() {
   
    // Mẫu chuỗi truy vấn đáng ngờ
    $suspicious_patterns = array('/<script>/i', '/UNION/i', '/SELECT.*FROM/i');

    // Lấy chuỗi truy vấn
    $query_string = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';

    // Kiểm tra nếu chuỗi truy vấn chứa mẫu đáng ngờ
    foreach ($suspicious_patterns as $pattern) {
        if (preg_match($pattern, $query_string)) {
            // Trả về lỗi 403 nếu phát hiện chuỗi truy vấn đáng ngờ
            wp_die('Access denied: Suspicious request', 'Forbidden', array('response' => 403));
        }
    }
    
}
add_action('admin_init', 'block_suspicious_requests');


function block_invalid_parameters() {
  
    $invalid_patterns = array(
        '/<script>/i',       // XSS
        '/union/i',          // SQL Injection
        '/select/i',         // SQL Injection
        '/base64_encode/i',  // Tiềm ẩn tấn công
        '/base64_decode/i',  // Tiềm ẩn tấn công
        '/eval\(/i',         // Tiềm ẩn tấn công
        '/system\(/i',       // Tiềm ẩn tấn công
        '/exec\(/i',         // Tiềm ẩn tấn công
        '/shell_exec\(/i'   // Tiềm ẩn tấn công
    );

    // Lặp qua tất cả các tham số trong request
    foreach ($_REQUEST as $key => $value) {
        foreach ($invalid_patterns as $pattern) {
            // Kiểm tra nếu giá trị tham số chứa mẫu đáng ngờ
            if (preg_match($pattern, $value)) {
                // Trả về lỗi 403 nếu phát hiện tham số không hợp lệ
                wp_die('Access denied: Invalid parameter value', 'Forbidden', array('response' => 403));
            }
        }
    }
    
}
add_action('admin_init', 'block_invalid_parameters');



 

Tìm hiểu thêm  Tạo product option với giá và hình ảnh trong wooocomerce sử dụng plugin Variation Swatches for WooCommerce