Trang chủWordpressTổng hợp các phương pháp bảo mật Website WordPress hiệu quả

Tổng hợp các phương pháp bảo mật Website WordPress hiệu quả

Tăng cường bảo mật cho Website WordPress bằng cách hiệu quả nhất

WordPress là một nền tảng mã nguồn mở sử dụng ngôn ngữ PHP, được đánh giá là hệ quản trị nội dung phổ biến nhất với khoảng 30% số lượng website toàn cầu đang hoạt động trên hệ thống này. Chính sự phổ biến này đã khiến nó trở thành mục tiêu của các hacker, những kẻ luôn tìm cách đánh cắp dữ liệu, chèn liên kết xấu, thêm quảng cáo không mong muốn, chuyển hướng không kiểm soát, hoặc thậm chí là index nội dung bằng ngôn ngữ khác.

Đối với các hacker chuyên nghiệp, không có cách nào đảm bảo 100% an toàn bởi điều này còn phụ thuộc vào việc website của bạn có đủ hấp dẫn hoặc có giá trị đối với họ không. Mỗi tính năng xuất hiện đều tiềm ẩn những lỗ hổng bảo mật, do đó, bài viết này sẽ hướng dẫn bạn các phương pháp bảo mật toàn diện nhất để giúp website của bạn trở nên an toàn hơn, ngay cả khi đối mặt với những hacker từ mới vào nghề đến chuyên nghiệp.

Nguyên nhân chính khiến Website bị nhiễm mã độc

Phần lớn các lý do khiến website nhiễm mã độc xuất phát từ những nguyên nhân dưới đây mà tôi đã rút ra được trong quá trình xử lý mã độc cho nhiều trang web, cũng như từ kinh nghiệm cá nhân khi mới bắt đầu với WordPress:

  • Sử dụng Theme, Plugin không rõ nguồn gốc: Đây là lý do chính khiến nhiều website tại Việt Nam dễ dàng bị nhiễm mã độc. Chủ sở hữu thường tải các theme và plugin từ những nguồn không đáng tin cậy trên internet. Nếu bạn nghiêm túc trong việc kinh doanh trực tuyến, không nên sử dụng các theme và plugin miễn phí được chia sẻ tràn lan, bởi chúng có thể chứa mã độc không ai biết.

  • Nhiễm mã độc từ các website khác trên cùng hosting: Khi bạn sử dụng hosting chung cho nhiều trang web, nguy cơ lây lan mã độc từ trang này sang trang khác rất cao. Các website nằm trên cùng một thư mục lưu trữ trong hosting, do đó, khi một trang bị nhiễm virus, các trang khác cũng có thể bị ảnh hưởng.

Bảo mật wordpress

  • Lỗ hổng bảo mật từ WordPress core, Theme/Plugin: Đây là yếu tố khách quan liên quan đến mã nguồn bạn đang sử dụng. Để khắc phục, các nhà phát triển thường xuyên cập nhật các bản vá lỗi mới cho theme và plugin, cũng như chính WordPress. Khi một lỗ hổng bảo mật nghiêm trọng được phát hiện, lập trình viên sẽ phát hành ngay bản cập nhật để sửa lỗi. Bạn chỉ cần nhấn nút Update trong giao diện quản trị là có thể khắc phục.

  • Lỗ hổng từ Hosting, VPS, Server: Đây là những vấn đề khách quan đến từ nhà cung cấp dịch vụ lưu trữ mà bạn khó có thể can thiệp. Những lỗ hổng này có thể ảnh hưởng từ ít đến rất nghiêm trọng, thậm chí gây mất dữ liệu của website. Do đó, hãy chọn dịch vụ hosting, VPS uy tín để giảm thiểu rủi ro.

Hậu quả của Website bảo mật kém

Nếu không triển khai các biện pháp bảo mật hiệu quả, website của bạn có thể dễ dàng bị nhiễm virus. Trên mạng luôn tồn tại vô số công cụ tự động, được điều khiển bởi những kẻ có ý đồ xấu, liên tục quét để tìm kiếm các lỗ hổng bảo mật. Nếu trang web của bạn nằm trong danh sách mục tiêu và không được bảo vệ tốt, nguy cơ bị tấn công sẽ rất cao.

Một số hậu quả bạn có thể gặp phải khi quản lý một website bảo mật yếu:

  • Dễ bị tấn công, mất quyền kiểm soát trang web, bị chèn các backlink xấu, index ngôn ngữ không mong muốn, chèn quảng cáo không phù hợp, chuyển hướng người dùng sang các trang web không an toàn, bị xóa dữ liệu hoặc mất quyền truy cập quản trị viên.
  • Ảnh hưởng nghiêm trọng đến SEO: Google có thể gửi cảnh báo qua email thông qua Google Search Console (dành cho những ai đã đăng ký) về tình trạng và rủi ro khi người dùng truy cập vào đường dẫn của website bạn. Dù chưa biết thứ hạng trên kết quả tìm kiếm sẽ bị ảnh hưởng ra sao, nhưng chắc chắn khách hàng sẽ dần mất lòng tin vào một trang web thường xuyên bị cảnh báo nguy hiểm từ Google.
  • Ảnh hưởng lớn đến uy tín của website, doanh nghiệp và hoạt động kinh doanh: Trang web không thể truy cập hoặc cung cấp trải nghiệm kém có thể làm mất dần khách hàng nếu không nhanh chóng xử lý mã độc. Hãy tự đặt mình vào vị trí khách hàng để tự hỏi liệu bạn có sẵn sàng chi tiền cho một sản phẩm từ một website bị cảnh báo nguy hiểm hay không, và liệu Google có ưu tiên xếp hạng cao cho một website chứa virus hay không?

Các phương pháp bảo mật Website WordPress chống hack hiệu quả

Sử dụng Tên đăng nhập – Mật khẩu khó đoán

Hiện có rất nhiều công cụ tìm kiếm mật khẩu được chia sẻ rộng rãi trên mạng, việc sử dụng chúng khá đơn giản. Ngay cả những hacker mới vào nghề cũng có thể tự tìm cách sử dụng công cụ để dò mật khẩu của một website. Phương pháp này thường dựa vào file từ điển đã được chuẩn bị, nếu mật khẩu của bạn dễ đoán như "123", "anhyeuem", "123456",… thì chỉ trong vài giây có thể bị phá. Độ khó của mật khẩu sẽ tăng lên khi bạn sử dụng các ký tự đặc biệt như "!@#$", kết hợp chữ hoa và chữ thường, và làm mật khẩu dài hơn 8 ký tự. Khi bạn kết hợp tất cả những yếu tố này, mật khẩu gần như không thể bị dò ra bằng công nghệ hiện nay.

Một công cụ dò mật khẩu với cấu trúc phức tạp hơn 8 ký tự, bao gồm cả chữ thường, chữ hoa và ký tự đặc biệt, có thể mất vài chục ngàn năm, thậm chí hàng triệu năm để phá nếu bạn tăng độ dài mật khẩu lên một chút. Đây được coi là biện pháp bảo vệ hiệu quả nhằm ngăn chặn những kẻ xấu có ý định sử dụng công cụ để dò mật khẩu.

Cập nhật phiên bản WordPress, Cập nhật Theme, Plugin lên bản mới nhất

Việc liên tục cập nhật lên phiên bản mới nhất giúp website của bạn đạt mức bảo mật tốt nhất và khắc phục các lỗi hiện có. Nếu trang web của bạn sử dụng phiên bản WordPress / Theme / Plugin cũ và gặp một lỗi nghiêm trọng, và bạn chưa kịp cập nhật, trang web của bạn có thể dễ dàng bị tấn công nếu kẻ xấu phát hiện phiên bản bạn đang dùng. Do đó, bạn nên cập nhật tất cả các yếu tố kể trên càng sớm càng tốt. Đừng lo lắng về lỗi hay xung đột, vì các bản cập nhật đã được kiểm tra kỹ lưỡng bởi các lập trình viên có kinh nghiệm, hoặc bạn có thể đợi vài ngày sau khi phiên bản mới ra mắt để đảm bảo an toàn trước khi cập nhật.

Sử dụng xác thực 2 yếu tố

  1. Xác thực 2 yếu tố cho Hosting: Đầu tiên, hãy truy cập vào Cpanel của bạn và tìm đến mục Xác thực 2 yếu tố, thường được viết tắt là 2FA (Two-Factor Authentication).

Xác thực 2 yếu tố cho Cpanel

Tại đây, bạn chọn Set up Two-Factor Authentication:

Chọn Set up Two-Factor Authentication

Tiếp theo, mở CH Play trên điện thoại và tải ứng dụng có tên Google Authentication, sau đó cài đặt:

Ứng dụng Google Authentication trên Google Play

Kế đó, khởi động ứng dụng và nhấn vào dấu cộng để Quét mã QR. Hãy quét mã QR trên Cpanel, sau đó nhập mã xác thực vào ô dưới và nhấn Configure Two-Factor Authentication để xác nhận.

Điền mã xác thực

Lần sau khi đăng nhập vào Hosting/Cpanel, bạn sẽ cần mã từ ứng dụng Google Authentication để xác minh thêm một bước nữa. Mã này được tạo ngẫu nhiên và thay đổi mỗi 30 giây, đảm bảo tính an toàn cao. Ngay cả khi kẻ xấu biết mật khẩu, họ cũng không thể truy cập nếu không có mã xác thực từ bạn.

  1. Xác thực 2 yếu tố cho WordPress: Để đảm bảo an toàn tối đa, bạn nên kết hợp cả hai loại xác thực. Với WordPress, hãy sử dụng Plugin Wordfence để cài đặt xác thực hai yếu tố cho mỗi lần đăng nhập vào Admin.

Sau khi cài đặt, vào mục Wordfence / Login Security. Trên điện thoại, quét mã QR:

Nhập mã rồi bấm Active

Nhập mã gồm 6 chữ số vào ô bên phải và nhấn ACTIVE để kích hoạt. Từ đó, khi đăng nhập, bạn sẽ cần nhập mã 6 chữ số từ ứng dụng Google Authentication để hoàn tất xác minh, ngăn ngừa kẻ xấu truy cập vào Admin của bạn.

Xóa / Loại bỏ các Theme và Plugin không sử dụng

Việc xóa bỏ các theme và plugin không sử dụng không chỉ giúp tiết kiệm dung lượng lưu trữ mà còn loại bỏ các tập tin có khả năng chứa mã độc. Hãy chỉ kích hoạt những gì cần thiết và vô hiệu hóa, xóa bỏ những thứ không cần thiết ngay lập tức.

Không phê duyệt bình luận, tránh nhấp vào bình luận chứa liên kết lạ

Một số người có ý định xấu cố tình đặt backlink không tốt hoặc tìm cách khai thác lỗ hổng trên website của bạn qua các bình luận. Rất may, WordPress có tính năng cho phép xét duyệt bình luận trước khi chúng xuất hiện trên nội dung bài viết. Chỉ nên duy trì những bình luận bạn cho rằng đến từ độc giả thực sự và nên xóa hoặc không phê duyệt các bình luận có đính kèm đường link không rõ nguồn gốc.

Bạn cũng có thể sử dụng công cụ Akismet Spam Protection miễn phí trong kho WordPress để ngăn chặn hiệu quả spam bình luận, đặc biệt là với các website đang gặp vấn đề với bình luận không mong muốn. Plugin này có thể tải về và cài đặt dễ dàng.

Sử dụng phiên bản PHP mới nhất

Ngoài việc cập nhật liên tục Theme, Plugin và WordPress, bạn cũng nên đảm bảo rằng PHP đang được sử dụng là phiên bản mới nhất. Để thực hiện điều này, bạn cần truy cập vào Cpanel và chọn Select PHP Version:

Chọn phiên bản PHP

Tại đây, bạn có thể thay đổi phiên bản PHP cho hosting mà bạn đang sử dụng. Nên chọn phiên bản từ 7.4 trở lên (càng cao càng tốt) bởi các phiên bản cũ hơn thường có lỗ hổng bảo mật dễ bị khai thác. Sử dụng phiên bản PHP mới nhất giúp tăng cường bảo mật cho trang web của bạn.

Chọn phiên bản PHP mới nhất

Sử dụng chứng chỉ bảo mật SSL / HTTPS

Cài đặt SSL cho website giúp trình duyệt xác nhận chế độ “Duyệt Web an toàn”. Ngược lại, nếu không có SSL, trang sẽ hiện cảnh báo “Không bảo mật” màu đỏ. Việc cài đặt SSL giúp mã hóa thông tin, đảm bảo tính bảo mật cho dữ liệu quan trọng như thông tin cá nhân, tài khoản ngân hàng, thẻ ATM,…

* Trước khi cài đặt SSL:

Lỗi chứng chỉ SSL

* Sau khi cài đặt SSL:

Đã bật bảo mật SSL

Đối với các trang quan trọng như trang đăng nhập WordPress, chạy qua kết nối HTTPS là cần thiết. Nếu không, tên đăng nhập và mật khẩu của bạn sẽ được gửi dưới dạng văn bản rõ ràng qua internet. Hiện nay, hầu hết các dịch vụ hosting đều hỗ trợ cài đặt SSL miễn phí, bạn chỉ cần liên hệ với bộ phận hỗ trợ để được hướng dẫn cài đặt nhanh chóng.

Ẩn File Cấu Hình: wp-config.php

Việc ẩn file wp-config.php là một biện pháp quan trọng để ngăn chặn hacker tìm kiếm thông tin cơ sở dữ liệu và mã nguồn của website. File này chứa tất cả các cấu hình quan trọng của một trang web, vì vậy việc để lộ nó có thể coi như bạn đang mở cánh cửa cho những kẻ tấn công.

Để thực hiện việc này, hãy làm theo các bước sau:

  1. Tạo thư mục mới: Truy cập vào Cpanel và tạo một thư mục trống có vị trí ngang hàng với public_html.

    Tạo một thư mục ngang hàng Public

  2. Tải file wp-config.php: Điều hướng vào thư mục public_html và tải file wp-config.php về máy.

    Tải file wp-config về

  3. Di chuyển file wp-config.php: Chuyển file wp-config.php vào thư mục mới bạn vừa tạo.

    Tải File wp-config lên thư mục con vừa tạo mới

  4. Chỉnh sửa file wp-config.php trong public_html: Xóa toàn bộ nội dung hiện tại và chèn đoạn mã sau vào.

    Sửa file config trong thư mục public_html

    <?php
    if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');
    require_once(ABSPATH . '../xindunghackem/wp-config.php');

    Dán đoạn code này vào

    Lưu ý: Thay thế "xindunghackem" bằng tên thư mục bạn đã tạo, thư mục này phải ngang hàng với public_html.

Thay đổi tiền tố cơ sở dữ liệu (Database Prefix)

Tên tiền tố mặc định của cơ sở dữ liệu thường là wp_. Để tăng cường bảo mật, bạn nên thay đổi nó thành một tên khác để tránh việc hacker dễ dàng nhận diện. Để thực hiện điều này, bạn có thể sử dụng một plugin bảo mật. Sau khi cài đặt plugin này vào website, bạn hãy điều hướng theo thứ tự sau: Security > Settings > Tools > Change Database Table Prefix.

Chọn Change Database Table Prefix

Sau đó, nhấn vào Run để tiến hành. Hệ thống sẽ tự động chuyển đổi tất cả các bảng trong cơ sở dữ liệu của bạn từ tiền tố mặc định wp_ sang một chuỗi ký tự ngẫu nhiên mới.

Thay đổi thành công tiền tố cơ sở dữ liệu

Bạn có thể kiểm tra kết quả bằng cách truy cập Cpanel > phpMyAdmin, chọn cơ sở dữ liệu mà bạn đang sử dụng. Lúc này, bạn sẽ thấy các bảng đã được đổi sang dạng tiền tố mới.

Tiền tố đã thay đổi thành công

Thay đổi nội dung Security Key

Security Key là một mã bí mật, được lưu trữ trong file wp-config.php nằm trong thư mục gốc public_html của website WordPress. Khi mở file này, bạn sẽ thấy các dòng giống như sau:

define( 'AUTH_KEY', 'STlDfHfd0~VYXaW&eXfZ:;7*-cfH}9stxi]=EzEi.)PK_[!U_hKrPox=8hIxV$*F' );
define( 'SECURE_AUTH_KEY', '4!BCoi!a1pPDY6D^cDpq(k~/Un3.<CJ{n:M3l9O*ecnwNKM!Z?bJ`:aa O*;F`[J' );
define( 'LOGGED_IN_KEY', 'k^KYjM{AuTPUjpqcKFo;<iDo5GBPTc$K=vO9]DXvWa1lcQww8_C6kcy~X?},i$s$' );
define( 'NONCE_KEY', '|;5m1(+?NF9!tX<fno =3e(`SU&Ul>tQ[b~ &oitlye%0ep+SOQzo*-CjU3e8ve<' );
define( 'AUTH_SALT', '!#fI7-`t[Q5RRqm3%:6IxJ!N|`M%j28x(IzV1e6m#L[>|w]--Nl4]PX5asY|vQIX' );
define( 'SECURE_AUTH_SALT', 'vX7*3,}s~qIMUSa`FH+lT0r@25#5Z9r1>pJZedtorh?? ?XcGzxE{-&.j@M{HmCm' );
define( 'LOGGED_IN_SALT', '< T~1a?@1#.68,;{FDFGZd>gstfpy;G38GL^)jRk_j*i;tli3)-P>f+i<ogUWODI' );
define( 'NONCE_SALT', 'y)jBp*pL%bH-%2ne&Ev?Muj(+=j23=pxM{>O3/q,%zYlyt#].J{XpGpn8T:5:BdY' );

Các đoạn mã này được tạo ra ngẫu nhiên và là duy nhất cho mỗi lần đăng nhập vào admin. Đảm bảo rằng mã này được tạo ngẫu nhiên và bạn nên thay đổi nó thường xuyên, đặc biệt nếu trang web của bạn đang bị tấn công. Để tạo mã mới, bạn có thể sử dụng một trang công cụ trực tuyến để sinh mã Security Key mới, sau đó sao chép và thay thế mã cũ, nhớ lưu lại thay đổi.

Cấm Sửa / Cài thêm Theme & Plugin

Đây là một biện pháp mạnh mẽ nhằm ngăn chặn các cuộc tấn công từ hacker. Việc chặn chỉnh sửa và cài mới giao diện cùng plugin giúp tăng cường bảo mật bằng cách ngăn không cho thêm mã độc vào trang web. Thực hiện điều này, ngay cả khi bạn mất quyền truy cập vào tài khoản quản trị, kẻ xấu cũng không thể can thiệp sâu thêm, giảm thiểu tối đa tổn thất.

Để ngăn cài đặt mới hoặc chỉnh sửa Theme & Plugin, bạn chỉ cần thêm hai dòng mã sau vào tệp wp-config.php (nằm trong thư mục gốc public_html):

/* Ngăn chỉnh sửa tệp */
define('DISALLOW_FILE_EDIT', true);

/* Ngăn cài đặt theme và plugin */
define('DISALLOW_FILE_MODS', true);

Nếu bạn cần cài đặt hoặc chỉnh sửa, chỉ cần đổi true thành false trong đoạn mã trên để tạm thời tắt tính năng bảo mật này.

Phân quyền truy cập (CHMOD) các file cấu hình quan trọng

Theo tiêu chuẩn, các tệp trên Cpanel có quyền CHMOD là 644 và thư mục là 755. Để tăng cường bảo mật cho các tệp cấu hình quan trọng như wp-config.php.htaccess, cần thiết phải thay đổi quyền truy cập nghiêm ngặt hơn.

  • Đối với tệp wp-config.php:

    Nhấp chuột phải vào tệp wp-config.php và chọn Change Permissions:

    Chọn Change Permissions

    Tích chọn các ô tương tự như hình dưới đây để chỉ cho phép đọc tệp. Thiết lập quyền truy cập của tệp wp-config.php thành 400:

    Phân quyền cho wp-config

  • Đối với tệp .htaccess:

    Tệp .htaccess có thể bị ẩn theo mặc định. Để hiển thị, nhấp vào nút Cài đặt ở góc trên cùng bên phải:

    Bấm nút Cài đặt

    Trong cửa sổ mới, tích chọn ô Hiển Thị Tệp Ẩn (dotfiles) và nhấn Save để lưu lại:

    Hiện file htaccess

    Nhấp chuột phải vào tệp .htaccess và chọn Change Permissions:

    Thay đổi nội dung file htaccess

    Tích chọn các ô như hình để thiết lập quyền 444 cho tệp. Nhấn Change Permissions để lưu thay đổi:

    Chọn quyền cho htaccess

Ngăn chặn thực thi file wp-config.php

Bạn có thể thấy file wp-config.php được nhắc đến nhiều lần trong bài viết này bởi vì nó giữ vai trò quan trọng trong việc cấu hình cho Website WordPress. Dưới đây là hướng dẫn về cách chặn việc chỉnh sửa hoặc thực thi file này.

Nhấp chuột phải vào file .htaccess và chọn Edit:

Edit file htaccess

Sau đó, dán đoạn mã dưới đây vào trong file .htaccess:

# Không cho phép sửa file config
<Files wp-config.php>;
order allow,deny
deny from all
</Files>

Với cách này, không ai, kể cả các theme hay plugin, có thể thay đổi nội dung của file wp-config.php. Hãy thực hiện điều này khi website của bạn đã hoạt động ổn định. Nếu bạn đang trong giai đoạn phát triển, có thể tạm thời bỏ chặn bằng cách xóa đoạn mã trên.

Sử dụng plugin quét mã độc

  • Wordfence Premium: Đây là một plugin bảo mật phổ biến trên WordPress với nhiều tính năng hữu ích như theo dõi ai đang truy cập vào website của bạn, phân biệt giữa bot và người dùng thực, và chặn các mối đe dọa tiềm ẩn bằng trình quét virus mạnh mẽ. Nó cũng thông báo cho bạn biết file nào bị nhiễm mã độc và cung cấp vị trí cụ thể của đoạn mã đó để bạn có thể dễ dàng xử lý.

  • Ithemes Security Pro: Plugin nổi tiếng trong cộng đồng WordPress với các tính năng bảo mật tiên tiến như chống lại cuộc tấn công dò mật khẩu, hỗ trợ đăng nhập hai yếu tố, đổi đường dẫn admin, và quét virus. Ithemes Security Pro sử dụng API của Sucuri để quét virus từ bên ngoài, giúp đảm bảo tính khách quan và độ chính xác cao.

  • Sucuri: Một plugin chất lượng khác với khả năng quét tường lửa mạnh mẽ, phát hiện lỗ hổng bảo mật và cung cấp dịch vụ sửa chữa bởi các chuyên gia. Tuy nhiên, chi phí sử dụng Sucuri khá cao, khoảng 500 USD cho mỗi site trong một năm, nhưng đổi lại bạn sẽ được hỗ trợ sửa mã độc từ chuyên gia nếu cần.

Trong trường hợp website của bạn bị nhiễm mã độc, hãy sử dụng các công cụ quét từ các plugin trên để phát hiện và xử lý mã độc một cách nhanh chóng. Sự kết hợp giữa các plugin, đặc biệt là WordfenceSucuri, sẽ giúp bạn có được sự bảo vệ mạnh mẽ. Tuy nhiên, trong thực tế, bạn chỉ nên chọn một plugin để sử dụng. Cá nhân tôi luôn ưu tiên Wordfence Premium.

Tắt XML-RPC khi không cần thiết

Trong bất kỳ trang web WordPress nào, bạn sẽ nhận thấy một tệp có tên xmlrpc.php nằm trong thư mục gốc public_html. XML-RPC là một giao thức cho phép kết nối với website WordPress thông qua các tệp XML. Tính năng này đã được tích hợp sẵn từ phiên bản 3.5 của WordPress và luôn được kích hoạt mặc định.

XML-RPC hỗ trợ nhiều API từ các nền tảng CMS khác như WordPress API, Blogger API, Movable API, Pingback API, MetaWeblog API, v.v. Thông thường, nó được sử dụng để đăng bài từ một ứng dụng bên ngoài như Windows Live Writer hoặc từ các dịch vụ tự động đăng bài như IFTTT.

Tuy nhiên, tính năng này cũng tiềm ẩn nguy cơ bị tấn công brute force để thử mật khẩu hoặc nặng hơn là tấn công HTTP Flood, một dạng DDoS tấn công bằng cách gửi một lượng lớn yêu cầu đến máy chủ, khiến máy chủ bị quá tải. Để vô hiệu hóa tính năng XML-RPC, bạn có thể thêm đoạn mã sau vào tệp .htaccess:

# Tắt XML-RPC
<files xmlrpc.php>
order allow,deny
deny from all
</files>

Vô hiệu hóa duyệt thư mục công khai

Theo mặc định, các tệp tin trên WordPress có thể bị công khai, cho phép bất kỳ ai xem nội dung bên trong qua đường dẫn như sau:

http://example.com/wp-includes/

Việc công khai này có thể bị tin tặc lợi dụng để khai thác các lỗ hổng bảo mật.

Thư mục bị lộ

Để bảo vệ các thư mục quan trọng và ngăn chặn việc truy cập tự do vào nội dung, bạn chỉ cần thêm đoạn mã sau vào tệp .htaccess:

# Tắt duyệt thư mục hiển thị
Options -Indexes

Việc này sẽ giúp bảo mật trang web của bạn khỏi các mối đe dọa tiềm ẩn.

Ngăn chặn IP đáng ngờ

Việc sử dụng plugin như Wordfence có thể giúp bạn nhận diện các địa chỉ IP lạ, thường có biểu hiện không giống với bot tìm kiếm hợp pháp (như của Google) hoặc khách truy cập thông thường. Những địa chỉ IP này thường thực hiện các truy vấn bất thường, dường như nhằm khai thác các lỗ hổng bảo mật trên website của bạn. Để bảo vệ website, bạn có thể chặn các IP này ở cấp độ toàn bộ hosting. Nếu chỉ chặn IP thông qua plugin, các IP này vẫn có khả năng truy cập website nếu có sử dụng bộ nhớ đệm. Tuy nhiên, chặn IP từ hệ thống hosting sẽ khiến IP đó không thể truy cập bất kỳ nội dung nào và chỉ nhận được thông báo lỗi 403 Forbidden: Truy cập tài nguyên này trên máy chủ bị từ chối.

Chặn IP đáng ngờ

Để thực hiện việc chặn IP, bạn có thể thêm đoạn mã sau vào file .htaccess:

deny from ip bạn muốn chặn
  • Ví dụ 1:

    deny from 123.66.170.213
    deny from 143.22.144.234
    deny from 176.00.122.212
    deny from 122.80.121.232
    deny from 188.40.190.276
    deny from 112.25.111.234
  • Ví dụ 2:

    deny from 123.66.170.0/24
    deny from 143.22.144.0/24
    deny from 176.00.122.0/24
    deny from 122.80.121.0/24
    deny from 188.40.190.0/24
    deny from 112.25.111.0/24

Trong Ví dụ 1, mỗi dòng sẽ chặn một địa chỉ IP cụ thể. Trong Ví dụ 2, bạn thay số cuối trong dải IP thành 0/24, điều này sẽ chặn toàn bộ dải IP trong cùng một mạng cục bộ. Phương pháp này giúp ngăn chặn đối tượng truy cập từ các thiết bị khác nhau, trừ khi họ đặt lại modem hoặc giả mạo IP để truy cập lại website của bạn.

Áp dụng các tiêu đề bảo mật (Security Headers)

HTTP Security Headers đóng vai trò quan trọng trong việc gia tăng khả năng bảo mật website, giúp ngăn chặn các cuộc tấn công phổ biến như MIME types, clickjacking, code injection, hay XSS. Dưới đây, tôi sẽ hướng dẫn bạn cách thiết lập những HTTP headers quan trọng nhất trên máy chủ web để nâng cao khả năng bảo vệ trang web của bạn.

Việc bổ sung các tiêu đề bảo mật sẽ giúp chuyển các cảnh báo đỏ trên trang kiểm tra Security Headers sang màu xanh, biểu thị rằng trang web của bạn đã được bảo vệ an toàn. Để kiểm tra xem trang của bạn đã cấu hình tiêu đề bảo mật nào, bạn có thể truy cập vào Securityheaders.com.

  • Khi chưa có tiêu đề bảo mật:

    Chưa có Tiêu đề bảo mật

  • Khi đã có tiêu đề bảo mật đầy đủ:

    Đã thêm tiêu đề bảo mật đầy đủ

Để thêm các tiêu đề bảo mật, bạn cần mở file .htaccess và chèn các đoạn mã Security Headers sau vào nội dung của file:

Header always append X-Frame-Options SAMEORIGIN: Ngăn chặn việc kẻ tấn công nhúng nội dung trang web của bạn vào trang khác.

Header set X-Content-Type-Options nosniff: Giảm thiểu rủi ro bảo mật kiểu MIME.

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload": Thúc đẩy việc sử dụng giao thức HTTPS an toàn.

Header set Content-Security-Policy "script-src 'none';": Vô hiệu hóa JavaScript trên trình duyệt của người dùng.

Header always set Referrer-Policy "same-origin": Chỉ truyền tiêu đề liên kết giới thiệu khi yêu cầu đến từ miền hiện tại.

Header set X-XSS-Protection "1; mode=block": Bảo vệ chống lại các cuộc tấn công XSS.

Header always set Permissions-Policy "geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); camera=(); microphone=(); usb=(); xr=(); speaker=(self); vibrate=(); fullscreen=(self);": Kiểm soát các tính năng trình duyệt có thể sử dụng.
  • Tổng hợp các đoạn mã trên và chèn vào file .htaccess, sau đó lưu lại:
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set Content-Security-Policy "script-src 'none';"
Header always set Referrer-Policy "same-origin"
Header set X-XSS-Protection "1; mode=block"
Header always set Permissions-Policy "geolocation=(); midi=(); notifications=(); push=(); sync-xhr=(); accelerometer=(); gyroscope=(); magnetometer=(); payment=(); camera=(); microphone=(); usb=(); xr=(); speaker=(self); vibrate=(); fullscreen=(self);"

Việc áp dụng các tiêu đề bảo mật này sẽ giúp cải thiện đáng kể khả năng bảo vệ cho trang web của bạn, đảm bảo an toàn và tin cậy hơn cho người dùng.

Bổ sung các tiêu đề bảo mật (Security Headers)

Khi bạn muốn tăng cường bảo mật cho website của mình, việc thêm các tiêu đề bảo mật là điều cần thiết. Tuy nhiên, điều này chỉ nên thực hiện khi bạn đã đạt được mức độ bảo mật cao, vì nó có thể gây ảnh hưởng đến một số plugin, giao diện, và tính năng của website. Do đó, cần xem xét cẩn thận để quyết định bật hoặc tắt tiêu đề bảo mật nào phù hợp nhất.

Thay đổi đường dẫn đăng nhập mặc định /wp-admin (wp-login.php)

Thông thường, khi bạn đăng nhập vào tài khoản quản trị viên, bạn sẽ sử dụng đường dẫn như https://tênwebsite/wp-admin hoặc https://tênwebsite/wp-login.php. Đây là các đường dẫn mặc định cho mọi trang web WordPress mới. Để tăng cường an toàn, bạn có thể thay đổi các đường dẫn này thành một tên ngẫu nhiên hoặc theo ý bạn, điều mà chỉ có bạn biết. Phương pháp này giúp giảm thiểu nguy cơ bị tấn công bởi các hacker nhắm vào những trang web có bảo mật yếu, trong khi thường bỏ qua những trang web có quản trị viên có kỹ năng bảo mật tốt.

  • Ẩn đường dẫn đăng nhập bằng WPS Hide Login

Thay đổi đường dẫn đăng nhập với plugin WPS Hide Login

Để thay đổi đường dẫn đăng nhập, bạn có thể sử dụng plugin bảo mật miễn phí có tên WPS Hide Login, có sẵn trên kho Plugin của WordPress. Sau khi cài đặt plugin này, bạn có thể bắt đầu cấu hình bằng cách vào mục Cài đặt / Tổng quan. Tại đây, bạn có thể thay đổi:

  • Login url: Đường dẫn đăng nhập mà bạn muốn chuyển đổi.
  • Redirection url: Đường dẫn sẽ được chuyển hướng đến khi có ai đó cố ý truy cập vào đường dẫn mặc định như wp-admin hoặc wp-login.php.

Thay đổi đường link đăng nhập

  • Ẩn đường dẫn đăng nhập bằng Ithemes Security Pro

Để tiếp tục, hãy truy cập vào mục Security / Settings / Advanced và chọn tab HIDE BACKEND:

Ẩn đường dẫn đăng nhập bằng Ithemes Security Pro

Tại đây, bạn có thể điều chỉnh các thông số sau:

  • Login Slug: Đường dẫn mới cho trang đăng nhập mà bạn muốn sử dụng.
  • Register Slug: Đường dẫn cho trang đăng ký bạn muốn thay đổi.
  • Redirection: Đường dẫn mà người dùng sẽ được chuyển hướng đến sau khi cố gắng đăng nhập qua đường dẫn cũ mặc định.

Sau khi điền đầy đủ thông tin, bạn nhớ nhấn nút Save để lưu lại và áp dụng những thay đổi này.

Lưu trữ toàn bộ Website và bảo vệ tại một vị trí an toàn

Việc sao lưu dữ liệu Website giờ đây đã trở nên dễ dàng hơn bao giờ hết nhờ vào các plugin hỗ trợ, giúp tiết kiệm thời gian so với phương pháp thủ công. Quá trình này không chỉ giúp bạn khôi phục lại mã nguồn mà còn hồi phục cơ sở dữ liệu về trạng thái an toàn trước đó. Định kỳ sao lưu là một thói quen quan trọng, có thể là hàng tuần hoặc hàng tháng, và tốt nhất nên lưu trữ các bản sao lưu này trên các dịch vụ đám mây như Google Drive hoặc OneDrive để đảm bảo an toàn. Tránh lưu trữ trên ổ cứng máy tính hoặc USB vì có nguy cơ bị mất, rơi rớt USB hay lây nhiễm virus, lỗi hệ điều hành.

Sao lưu lại dữ liệu toàn bộ Website với All in One Migration

Một plugin sao lưu dữ liệu mạnh mẽ và nhanh chóng là All in One Migration Unlimited Extension, cho phép bạn sao lưu toàn bộ dữ liệu chỉ với một cú nhấp chuột, lưu trữ chúng thành một file duy nhất và dễ dàng phục hồi khi cần thiết.

Ngăn chặn thực thi PHP trong một số thư mục cụ thể

Vô hiệu hóa thực thi PHP là một biện pháp bảo mật đáng kể cho các Website có sử dụng hình ảnh, điều mà hầu hết các trang web hiện nay đều có. Khi bạn hoặc người khác tải lên một bài viết kèm hình ảnh, có khả năng hình ảnh đó chứa virus hoặc mã PHP được chèn vào. Do đó, cần ngăn chặn các đoạn mã PHP không được thực thi khi tải lên các tệp hình ảnh hoặc bất kỳ tệp nào khác.

Để thực hiện điều này, bạn cần truy cập vào Cpanel, điều hướng đến public_html/wp-contents/uploads. Sau đó, tạo một tệp mới bằng cách nhấn vào dấu + Tệp:

Bấm vào thêm tệp mới

Đặt tên cho tệp mới là .htaccess và bấm Create New File:

Thêm tệp htaccess

Sau đó, thêm đoạn mã sau vào bên trong tệp .htaccess:

<Files *.php>
deny from all
</Files>

Mã này sẽ ngăn chặn việc thực thi các tập lệnh PHP trên toàn bộ các file được tải lên, bảo vệ hệ thống khỏi các mối nguy từ mã độc.

Thay đổi ID người dùng qua Ithemes Security

Sử dụng công cụ trong plugin Ithemes Security Pro để thay đổi ID người dùng mặc định có ID là "1". Điều này giúp ngăn chặn các cuộc tấn công giả định rằng tài khoản có ID "1" là của quản trị viên.

Để thực hiện việc này, trước tiên bạn cần cài đặt plugin Ithemes Security Pro trên website của mình. Sau đó, điều hướng theo đường dẫn: Security / Tools / Change User ID 1 và nhấn Run để công cụ tự động thực hiện:

Thay đổi ID User mặc định 1

Giới hạn nỗ lực đăng nhập bằng Plugin

Giới hạn nỗ lực đăng nhập là một biện pháp hữu ích để ngăn chặn các công cụ tự động dò mật khẩu, đặc biệt là trước các cuộc tấn công Brute Force Attack cổ điển. Đây là một lớp bảo vệ bổ sung sau khi thực hiện xác thực hai yếu tố, giúp tăng cường bảo mật cho Website WordPress của bạn. Việc cấu hình này rất dễ dàng thông qua các plugin bảo mật có sẵn tính năng này.

  • Giới hạn đăng nhập với Wordfence Premium:

    Truy cập vào Wordfence / All Options / Brute Force Protection và điền số liệu vào các ô tương ứng với từng chức năng:

    Giới hạn nỗ lực đăng nhập

    • Khóa sau bao nhiêu lần thất bại: Lock out after how many login failures
    • Khóa sau bao nhiêu lần quên mật khẩu: Lock out after how many forgot password attempts
    • Đếm số lần thất bại sau khoảng thời gian nào: Count failures over what time period
    • Khoảng thời gian người dùng bị khóa: Amount of time a user is locked out
    • Chặn ngay lập tức nếu nhập sai tài khoản: Immediately lock out invalid usernames
  • Giới hạn nỗ lực đăng nhập với Ithemes Security Pro:

    Truy cập vào Security / Settings và chọn tab Lockouts. Sau đó, bạn nhấn vào biểu tượng cài đặt trong phần Local Brute Force:

    Chọn cài đặt Local Brute Force

    Điền thông tin vào các trường tương ứng với chức năng bạn muốn:

    Giới hạn nỗ lực đăng nhập với Ithemes Security Pro

    • Chặn ngay lập tức người dùng nào đăng nhập bằng tên “Admin”: Automatically ban “admin” user
    • Số lần đăng nhập tối đa trên mỗi máy chủ: MAX LOGIN ATTEMPTS PER HOST
    • Số lần đăng nhập tối đa cho mỗi người dùng: MAX LOGIN ATTEMPTS PER USER
    • Số phút ghi nhớ thời gian đã đăng nhập sai: MINUTES TO REMEMBER BAD LOGIN (CHECK PERIOD)

Bảo mật trang đăng nhập và đăng ký bằng Recapcha V3

Để bắt đầu tích hợp ReCapcha V3 cho hệ thống của bạn, hãy truy cập vào trang chính thức của Google ReCapcha V3 để đăng ký một mã mới.

Truy cập v3 Admin Console:

Bấm vào v3 Admin Console

Nhấn chọn v3 Admin Console

Điền đầy đủ thông tin vào các trường cần thiết:

Điền thông tin cho ReCapcha

Cung cấp thông tin cho ReCapcha

  • Label: Đặt tên cho Captcha bạn đang tạo.
  • reCAPTCHA type: Lựa chọn loại Captcha, ở đây chọn reCAPTCHA v3.
  • Domains: Điền tên miền của bạn.
  • Accept the reCAPTCHA Terms of Service: Đồng ý với các điều khoản dịch vụ của Google.

Sau khi hoàn tất, nhấn nút Submit để hoàn tất đăng ký:

Bấm nút Submit

Nhấn nút Submit

Tiếp theo, sao chép Site KeySecret Key:

Copy Site Key và Secret Key

Sao chép Site KeySecret Key

Quay lại trang web của bạn, truy cập Wordfence / Login Security và dán các Key vừa sao chép vào các trường tương ứng trong Plugin:

Điền các Key vừa Copy vào

Điền các Key đã sao chép

Cuối cùng, nhấn Save để lưu các thay đổi. Như vậy, bạn đã hoàn tất cấu hình Recapcha V3 cho trang web của mình. Từ bây giờ, mỗi khi đăng nhập, bạn sẽ thấy biểu tượng ReCapcha của Google xuất hiện. Chức năng này giúp phát hiện và ngăn chặn các hoạt động spam từ bot, bảo vệ trang web khỏi các công cụ dò tìm lỗ hổng từ hacker.

Thiết lập Cloudflare để cải thiện bảo mật cho Website WordPress

Cloudflare là một công ty có trụ sở tại Hoa Kỳ chuyên cung cấp các dịch vụ mạng phân phối nội dung (CDN), bảo mật Internet và quản lý tên miền. Cloudflare hoạt động như một reverse proxy giữa người truy cập và các nhà cung cấp dịch vụ lưu trữ, giúp bảo vệ và tối ưu hóa các trang web.

Với Cloudflare, bạn có thể dễ dàng tạo một tài khoản miễn phí để quản lý tên miền, chuyển hướng tên miền đến hosting, bảo vệ trang web khỏi các cuộc tấn công DDos, bổ sung tường lửa bảo mật, thiết lập các quy tắc bảo vệ, ngăn chặn các bot thu thập dữ liệu và thực hiện tất cả những điều này mà không cần phải đăng nhập vào WordPress. Để biết thêm chi tiết về cách cài đặt Cloudflare, bạn có thể tham khảo bài viết hướng dẫn.

Dưới đây là một số tùy chọn mà bạn có thể cấu hình để tăng cường bảo mật với Cloudflare:

  • Kích hoạt Proxy Cloudflare:

    Bật Proxy cho Cloudflare

  • Bật chế độ chống Bot (Bot Fight Mode):

    Bật chế độ chiến đấu bot cho Cloudflare

  • Thiết lập các quy tắc cho khách truy cập:

    Cài đặt tường lửa cho Cloudflare

  • Kích hoạt mã hóa bảo mật SSL trên Cloudflare:

    Bật Full SSL trên Cloudflare

Khi sử dụng Cloudflare một cách hiệu quả, bạn có thể thiết lập các quy tắc bảo mật phù hợp với nhu cầu của mình, đặc biệt là trong việc ngăn chặn các loại bot không mong muốn.

Kết Luận

Bài viết này đã giới thiệu đến bạn những phương pháp tối ưu nhất để bảo vệ Website WordPress của mình, cùng với hướng dẫn chi tiết từng bước. Áp dụng những kỹ thuật này sẽ giúp website của bạn an toàn hơn và giảm nguy cơ bị tấn công. Hy vọng thông tin này hữu ích và hẹn gặp lại trong những bài viết tiếp theo.

Bài viết mới

spot_img