Hãy tạo sự khác biệt
Vui lòng đợi...

Quay lại 657 Lượt xem
Làm thế nào để phát hiện và block IP của harker hay spamer?

Làm thế nào để phát hiện và block IP của harker hay spamer? Tạo nội dung động

Mô tả

     Trong thời đại số hiện nay, website không chỉ là "bộ mặt" của doanh nghiệp mà còn là mục tiêu thường xuyên của các cuộc tấn công mạng. Từ những cú click tự động của spam bot cho đến các nỗ lực xâm nhập trái phép của hacker, mỗi lượt truy cập bất thường đều tiềm ẩn nguy cơ làm gián đoạn hoạt động, rò rỉ dữ liệu hoặc làm giảm uy tín thương hiệu. Vì vậy, việc phát hiện kịp thời và chặn đứng các IP độc hại chính là một trong những biện pháp bảo vệ website đơn giản mà hiệu quả.

     Trong bài viết này, chúng ta sẽ cùng khám phá cách nhận diện dấu hiệu tấn công, truy vết IP của kẻ xấu và chủ động thiết lập các biện pháp để chặn hoàn toàn truy cập từ những nguồn không mong muốn - từ thủ công bằng mã PHP, cấu hình server, cho đến những công cụ chuyên dụng mạnh mẽ dành riêng cho WordPress và VPS.

(Bài viết này hướng dẫn cho các website được thiết kế dựa trên nền tảng Wordpress)

I. CÁC PHƯƠNG PHÁP ĐỂ BIẾT ĐỊA CHỈ IP CỦA SPAMER HAY HAKER

1.1. Đối với Form Liên hệ (Contact)

     Nhiều Spamer sử dụng Form Liên Hệ để gửi mail chào hàng hoặc mail spam hoặc mail lừa đảo, mail chứa mã độc. Những IP liên quan tới những Spamer/Harker này có thể được nhận biết từ đó có cơ sở để chặn các địa chỉ IP này.

1.1.1. Cách để lấy địa chỉ IP của Spamer/Harker khi Form Liên Hệ sử dụng pluggin Contact Form 7

     Cách thực hiện tuần tự như sau:

+ Bước 1: Thêm một trường ẩn chứa IP vào form bằng cách Mở Form bạn đang dùng trong phần Contact => Forms, thêm dòng sau vào cuối form:

[hidden user-ip default:get]

+ Bước 2: Thêm IP vào nội dung email gửi admin

     Thực hiện bằng cách, trong phần “Mail” (ở tab Mail), chỉnh sửa nội dung trong trường “Message body” như sau:

     Ví dụ: Nội dung Email được thiết lập như sau

Họ tên: [your-name]

Email: [your-email]

Nội dung: [your-message]

Địa chỉ IP của người gửi: [user-ip]

+ Bước 3: Kích hoạt cho phép lấy $_GET IP

     Contact Form 7 có thể tự động điền default:get từ query string hoặc server variables. Để IP hoạt động tốt nhất, bạn nên thêm đoạn sau vào file functions.php (của theme mà bạn đang dùng) để hỗ trợ truyền IP vào field user-ip:

add_filter('wpcf7_special_mail_tags', 'add_user_ip_tag', 10, 2);

function add_user_ip_tag($output, $name) {

    if ($name == 'user-ip') {

        $output = $_SERVER['REMOTE_ADDR'];

    }

    return $output;

}

1.1.2. Cách để lấy địa chỉ IP của Spamer/Harker khi Form Liên Hệ sử dụng pluggin WPForms

    Nếu bạn sử dụng WPForms làm plugin tạo form liên hệ trong WordPress, thì bạn hoàn toàn có thể chèn địa chỉ IP của người gửi vào nội dung email gửi về admin mà không cần viết code phức tạp. Cách thực hiện tuần tự như sau:

+ Bước 1: Vào chỉnh sửa form

  • Vào WPForms → All Forms
  • Nhấp vào form bạn muốn sửa (ví dụ: form liên hệ)

+ Bước 2: Mở phần cấu hình email

  • Chọn tab "Settings" => "Notifications"

+ Bước 3: Thêm thẻ Smart Tag User IP

     Tại phần “Message” hoặc nội dung email, thêm dòng sau vào bất cứ nơi đâu trong nội dung email:

IP người gửi: {user_ip}

     Ví dụ:

Bạn vừa nhận được một liên hệ mới từ website:

Họ tên: {field_id="1"}

Email: {field_id="2"}

Nội dung: {field_id="3"}

IP người gửi: {user_ip}

* Chú ý: 

  • {user_ip} là Smart Tag có sẵn của WPForms dùng để hiển thị địa chỉ IP của người gửi.
  • Hiển thị IP trong entry (dành cho quản trị viên):
  • Vào WPForms => Entries
  • Click vào từng entry → bạn sẽ thấy mục “User IP” hiển thị trong thông tin chi tiết.
  • Nếu bạn đang dùng phiên bản WPForms Lite, vẫn có thể dùng {user_ip} miễn phí. Tuy nhiên nếu muốn mở rộng (ví dụ: lưu IP vào Google Sheets, chặn IP...), có thể cân nhắc bản Pro.

1.1.3. Cách để lấy địa chỉ IP của Spamer/Harker khi Form Liên Hệ sử dụng pluggin Fluent Forms

    Trong Fluent Forms, bạn hoàn toàn có thể lấy địa chỉ IP của người gửi form liên hệ và hiển thị nó trong email gửi tới admin một cách dễ dàng không cần viết code. Cách xử lý như sau:

+ Bước 1: Mở form liên hệ của bạn

  • Truy cập vào WordPress admin => Fluent Forms => All Forms.
  • Chọn form bạn muốn sửa (ví dụ: Contact Form).

+ Bước 2: Vào phần Email Notifications

  • Trong trình chỉnh sửa form, chọn tab “Settings & Integrations”.
  • Vào mục “Email Notifications”.
  • Nhấp vào email đang gửi đến admin (thường là “Admin Notification”).

+ Bước 3: Thêm mã {ip} vào nội dung email

     Tại phần "Email Body", bạn có thể thêm dòng sau: 

IP người gửi: {ip}

     Bạn có thể chèn dòng lệnh trên vào cuối email hoặc bất kỳ vị trí nào trong nội dung, ví dụ:

Bạn có tin nhắn mới từ form liên hệ:

Họ tên: {input_name}

Email: {input_email}

Nội dung: {input_message}

IP người gửi: {ip}

Thời gian gửi: {submission_date}

* Chú ý:

  • {ip} là Smart Tag mặc định → không cần cấu hình thêm.
  • IP cũng được lưu trong Entries → bạn có thể xem lại sau trong dashboard.
  • Nếu bạn muốn lưu thêm thông tin vào Google Sheets hoặc CRM, có thể sử dụng các Addon của Fluent Forms Pro.

1.2. Bắt IP của các Visitor khi truy cập vào các trang nhậy cảm

     Các trang nhậy cảm ở đây như: wp_login.php hoặc wp_config.php hoặc /wp_login/...

     Với những Visitor mà truy cập vào những trang nhậy cảm thì thì khả năng cao là Harker rồi. Cách để bắt IP của họ, Bạn thực hiện như sau:

    Bạn thêm đoạn CODE sau vào cuối file functions.php của Theme mà bạn đang sử dụng:

function log_suspicious_access() {

    $uri = $_SERVER['REQUEST_URI'];

    $ip = $_SERVER['REMOTE_ADDR'];

    // Danh sách các đường dẫn khả nghi

    $suspicious_paths = ['wp-login.php', 'xmlrpc.php', 'wp-admin'];

    foreach ($suspicious_paths as $path) {

        if (strpos($uri, $path) !== false) {

            $log = "HACKER ATTEMPT: IP: $ip | URL: $uri | Time: " . date("Y-m-d H:i:s") . "\n";

            file_put_contents($_SERVER['DOCUMENT_ROOT'].'/hacker_log.txt', $log, FILE_APPEND | LOCK_EX);

            break;

        }

    }

}

add_action('init', 'log_suspicious_access');

* Chú ý:

  • Để hiển thị danh sách IP này, bạn chỉ việc gõ đường dẫn từ trình duyệt web: domain/hacker_log.txt
  • Theo thời gian, file hacker_log.txt khả năng sẽ tăng về kích cỡ, vì vậy, sau khi đã xử lý chặn các IP đáng ngờ từ file này, Bạn có thể xóa nội dung của file đó đi bằng cách truy cập vào Hosting/VPS => Đi đến thư mục public_html => mở file này ra và xóa nội dung bên trong nó => Lưu lại là OK.

1.3. Bắt IP của các Visitor khi có request POST đáng ngờ (Brute Force / SQL Injection)

     Bổ sung đoạn lệnh sau vào cuối file function.php của theme mà bạn đang sử dụng:

function detect_malicious_post() {

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {

        $raw_input = file_get_contents('php://input');

        $ip = $_SERVER['REMOTE_ADDR'];

        $uri = $_SERVER['REQUEST_URI'];

        if (preg_match('/(union|select|sleep|benchmark|drop|or 1=1)/i', $raw_input)) {

            $log = "SQL INJECTION ATTEMPT: IP: $ip | URI: $uri | Payload: $raw_input | Time: " . date("Y-m-d H:i:s") . "\n";

            file_put_contents($_SERVER['DOCUMENT_ROOT'].'/hacker_log.txt', $log, FILE_APPEND | LOCK_EX);

        }

    }

}

add_action('init', 'detect_malicious_post');

1.4. Dùng Plugin WordPress chuyên dụng (ghi + chặn IP)

Danh sách các Pluggin hỗ trợ việc ghi nhận IP của Visitor

1.5. Sử dụng câu lệnh quản trị hệ thống VPS/Máy chủ

     Trường hợp, Bạn có quyền truy cập vào VPS/Máy chủ (Ở chế độ SSH) với quyền cao nhất - quyền Root, thì bạn hoàn toàn có thể dùng lệnh Linux/Unix...để truy xuất IP, URL và thời điểm truy cập.

=> Đến đây, khi bất cứ ai gửi mail cho bạn thông qua Form Liên hệ thì IP của họ đề được gửi kèm theo Nội dung mail. Thông qua nội dung mail đó, bạn sẽ biết IP nào là của Spamer/Harker và bạn liệt kê ra một danh sách để thực hiện Block các IP đó không cho họ truy cập vào website của Bạn. Việc thực hiện Block IP sẽ được hướng dẫn ở bên dưới.

* Chú ý:

II. CÁCH CHẶN IP CỦA CÁC SPAMER/HARKER ĐỂ KHÔNG CHO PHÉP HỌ TRUY CẬP VÀO WEBSITE

2.1. Chặn từng IP bằng cách chèn lệnh vào file .htaccess

     Dán đoạn lệnh sau vào cuối file .htaccess

order allow,deny

deny from Địa_Chỉ_IP_Cần_Chặn

allow from all

2.2. Chặn nhiều địa chỉ IP bằng cách chèn lệnh vào file .htaccess

     Để chặn hàng loạt địa chỉ IP bằng cách chèn lệnh trong file .htaccess, Bạn cần làm như sau:

+ Bước 1: Mở công cụ iSEO24h.Com => Kích vào biểu tượng ngôn ngữ và chọn Ngôn ngữ Tiếng Việt, bạn thực hiện như hình bên dưới:

Hình 1: Mở Bộ công cụ hỗ trợ SEO miễn phí iSEO24h.Com ở chế độ tiếng Việt

+ Bước 2: Tìm công cụ có tên SEO Toolkits Addons và kích vào biểu tượng tương ứng để mở công cụ đó ra.

Hình 2: Kích vào biểu tượng SEO Toolkits Addons

+ Bước 3: Kích vào menu Tạo Code Cho File .htaccess (5) => Kích vào công cụ Tạo Code Chặn IP Hàng Loạt (6):


Hình 3: Mở công cụ tạo mã chặn IP hàng loạt

+ Bước 4: Tạo lệnh chặn IP hàng loạt

Hình 4: Giao diện công cụ tạo lệnh chặn IP hàng loạt cho file .htaccess

Trong cửa sổ trên, Bạn thực hiện như sau:

  • Bạn dán danh sách địa chỉ IP vào Ô số 7 (Mỗi IP trên một dòng).
  • Sau đó, Bạn kích vào nút TẠO CODE NGAY (8) => Khi đó, đoạn code dùng để chặn danh sách địa chỉ IP sẽ hiện ở ô số 9
  • Cuối cùng, Bạn copy đoạn lệnh ở ô số 9 và dán vào cuối file .htaccess là OK.

2.3. Chặn hàng loạt IP từ file .txt với thông báo CẤM TRUY CẬP trực quan

     Ngoài việc thực hiện bằng lệnh đặc thù trong file .htaccess ra, bạn còn có thể sử dụng cách sau để chặn hàng loạt IP ứng với IP của các Spamer/Harker, Bạn còn có thể thực hiện theo cách sau:

+ Bước 1: Bạn tạo Bài viết (có chèn ảnh) với nội dung đại loại như:

CẤM TRUY CẬP!

Bạn không có quyền truy cập vào Website!

     Giả sử bài viết này có URL là: domain/cam-truy-cap

+ Bước 2: Từ PHẦN 1 ở trên, bạn lọc ra các IP ứng với IP Spamer/Harker và bổ sung nó vào một file khác, giả sử file đó có tên là: real_harkers.txt.

     Mỗi địa chỉ IP nằm trên một dòng riêng biệt.

     Tạo file này xong, Bạn copy nó để vào thư mục public_html trên hosting/VPS.

+ Bước 3: Bạn bổ sung đoạn Code PHP sau vào cuối file Function.php của Theme mà bạn đang sử dụng:

add_action('init', 'redirect_hacker_ips');

function redirect_hacker_ips() {

    // Bỏ qua với người đã đăng nhập (nếu muốn chặn toàn bộ thì xoá dòng này)

    if (is_user_logged_in()) return;

    // Lấy IP hiện tại

    $visitor_ip = $_SERVER['REMOTE_ADDR'];

    // Đường dẫn tới file chứa danh sách IP bị chặn

    $block_file_path = ABSPATH . 'real_harker.txt';

    // Kiểm tra file có tồn tại không

    if (!file_exists($block_file_path)) return;

    // Đọc danh sách IP

    $blocked_ips = file($block_file_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    // Nếu IP hiện tại nằm trong danh sách thì chuyển hướng

    if (in_array($visitor_ip, $blocked_ips)) {

        wp_redirect(home_url('/cam-truy-cap'));

        exit;

    }

}

=> Đến đây đã xong, như vậy, mỗi khi Visitor truy cập từ IP nằm trong danh sách của file real_harkers.txt thì nó sẽ được chuyển hướng sang Link bài viết mà Bạn tạo ở Bước 1 bên trên. Và họ sẽ không truy cập vào các trang khác trên web của Bạn được.

* Chú ý:

  • Mỗi khi có IP của Spamer/Harker mới, Bạn chỉ việc thêm địa chỉ IP đó vào cuối file real_harkers.txt là được.
  • Cần lưu lại file function.php trước khi thực hiện.
  • Để lấy đoạn Code PHP trong phần này, bạn cần tải file được đề cập trong phần chú ý của mục 1.5 bên trên.

2.4. Chặn Dải IP theo Quốc Gia

     Để chặn dải IP theo quốc gia nhằm tránh bị spam, hark gây ra bởi những thành phần xấu tính từ các quốc gia KHÔNG THÂN THIỆN, bạn cần thực hiện theo hướng dẫn trong bài viết: Làm thế nào để chặn dải IP theo quốc gia nhằm tránh spamer và harker?

     Tóm lại, trong thế giới số đầy rẫy những mối đe dọa an ninh, việc để website "mở cửa" cho hacker hay spammer truy cập không khác gì mời trộm vào nhà. Việc phát hiện sớm và chủ động ghi nhận, phân tích, chặn IP đáng ngờ không chỉ giúp bảo vệ hệ thống khỏi các cuộc tấn công tiềm ẩn mà còn nâng cao độ tin cậy, hiệu suất và trải nghiệm người dùng.

     Dù bạn đang sử dụng plugin bảo mật, log thủ công, hay giải pháp từ server như Fail2Ban hay firewall, thì điều quan trọng nhất vẫn là: phòng còn hơn chống. Hãy chủ động giám sát lưu lượng truy cập, ghi log IP thường xuyên, cập nhật plugin và vá lỗ hổng kịp thời.

     Một hệ thống bảo mật tốt không bao giờ chỉ nằm ở một lớp chắn, mà là sự phối hợp thông minh giữa kỹ thuật – công cụ – tư duy cảnh giác. Bảo vệ website chính là bảo vệ tài sản số của bạn trong kỷ nguyên 4.0.


Ghi chú
  • Sử dụng ngay bộ công cụ hỗ trợ SEO miễn phí để tăng cường hiệu quả SEO cho website của bạn tại iSEO24h.Com

  • *Mọi thắc mắc, Bạn vui lòng liên hệ Uy theo Số Hotline/Zalo: 0945.062.863 hoặc qua Form LIÊN HỆ để được hỗ trợ giải đáp trong thời gian sớm nhất.


    QUẢNG CÁO Bộ công cụ Marketing du kích dành cho mọi doanh nghiệp

    Bài Viết liên quan
    Back To Top