Làm thế nào để bảo mật WordPress

Làm thế nào để bảo mật WordPress

WordPress là nền tảng quản trị nội dung lớn nhất thế giới. Nó chạy trên tới 4.5% của toàn bộ website trên thế giới Internet và đã được cài hơn 76.5 triệu lần.

Thật không may là mặc dù phổ biến như vậy, theo thông từ báo cáo hack của Securi, một công ty chuyên về bảo mật. WordPress là CMS dễ bị hack nhất trên thế giới. Nhưng đừng hốt hoảng nhé các bạn, nếu thực hiện đúng cách, bạn sẽ gia cố lớp bảo mật WordPress lên tầm cao mới, hãy theo dõi các ví dụ cũng như các hướng dẫn thực tế bên dưới, đó là các biện pháp hữu hiệu nhất nhằm tăng cường bảo mật trong WordPress.

Bạn cần gì?

Trước khi bắt đầu bạn cần biết::

  • Truy cập vào trang Administrator của WordPress
  • Truy cập vào tài khoản hosting của bạn (tùy chọn)

Bước 1 – Cập nhật WordPress cho website

Bước đầu tiên và cũng là bước quan trọng nhất trong tất cả các bước bảo mật WordPress. Nếu muốn website sạch và không có malware bạn cần giữ cho WordPress luôn được cập nhật. Mặc dù chắc ai cũng biết điều này, nhưng thực tế chỉ có 22% bản cài WordPress chạy với phiên bản mới nhất trên thế giới, tức là có tới 78% website không an toàn, chẳng trách WordPress bị nói là CMS dễ bị hack nhất!

WordPress có thiết lập tự động cập nhật từ bản 3.7, tuy nhiên, nó chỉ hiệu quả với các cập nhật bảo mật nhỏ. Vì vậy, các cập nhật chính nên được làm thủ công. Trong trường hợp bạn không biết cách cập nhật WordpPress, xem hướng dẫn này (tiếng Anh)

Bước 2 – Bảo mật WordPress bằng thông tin đăng nhập “thông minh”

không sử dụng admin để đăng nhập

Đừng sử dụng admin làm WordPress administrator username nhé, tất cả mọi người đều biết admin là tên mặc định rồi! Nếu đang dùng tức là bạn đang giúp hacker một tay để vào được trang quản trị dễ dàng. Việc đổi thông tin quản trị, tên đăng nhập sang một tên khác thay vì là admin là rất quan trọng(xem hướng dẫn này – tiếng Anh nếu bạn không biết làm) hoặc tạo một tài khoản Administrator mới và xóa cái cũ. Làm các bước sau nếu bạn chọn cách sau::

  1. Vào WordPress Dashboard
  2. Chuyển tới mục Users và chọn Add New.
    Thêm user mới WordPress
  3. Tạo user mới và cấp quyền administrator cho nó.
    Tạo user mới WordPress
  4. Đăng nhập lại WordPress với thông tin mới
  5. Xóa tài khoản admin cũ.
    Xóa Admin WordPress

Password phức tạp cũng đóng góp một phần không nhỏ để bảo mật WordPress. Sẽ rất khó khăn để tấn công BruteForce nếu bạn có chữ thường, chữ hoa, số và ký tự đặc biệt. Những công cụ như LastPass và 1Password có thể giúp tạo password phức tạp. Ngoài ra, nếu bạn cần đăng nhập vào trang quản trị WordPress khi sử dụng kết nối mạng không an toàn (như quán cà phê, thư viện, sân bay,…), đừng quên bảo mật bằng VPN để bảo vệ thông tin đăng nhập.

Bước 3 – Kích Hoạt Bảo Mật WordPress 2 Lớp

Bảo mật 2 lớp tạo thêm lần bảo mật nữa cho quá trình đăng nhập của bạn. Hầu hết được dùng cho email, tài khoản ngân hàng. Tại sao không dùng trên WordPress?

Rất đơn giản để cài trên WordPress blog. Bạn chỉ cần cài app bảo mật 2 lớp cho WordPress. Bạn có thể xem hướng dẫn chi tiết làm thế nào để kích hoạt bảo mật 2 lớp trên WordPress tại đây (tiếng Anh).

Bước 4 – Tắt báo cáo lỗi PHP Error

Báo cáo lỗi PHP error cần được bật nếu bạn đang lập trình website và muốn mọi thứ chạy trơn tru. Tuy nhiên, hiển thị lỗi cho tất cả mọi người xem là hoàn toàn không nên, đặc biệt là khi bạn đang cần bảo mật cho WordPress.

Bạn không cần phải là lập trình viên để làm việc này trên WordPress. Nhiều nhà cung cấp hosting như Hostinger cho phép tắt báo cáo lỗi trong trang quản trị. Nếu không có, chỉ cần thêm dòng sau vào file wp-config.php. Bạn có thể dùng FTP client hoặc Quản lý File trong control panel để sửa file wp-config.php.

error_reporting(0);
@ini_set(‘display_errors’, 0);

Vậy thôi. Báo cáo lỗi đã được tắt

Bước 5 – Không dùng WordPress Themes null

Hãy nhớ – “Phô mát miễn phí ở trong bẫy chuột”. Chúng ta cũng có thể áp dụng câu nói đó cho nulled WordPress themes và plugins.

Có hàng ngàn nulled plugins và themes trôi nổi trên Internet. Người dùng có thể download chúng tại một số trang Warez hoặc Torrent site miễn phí. Nhưng họ không biết rằng hầu hết trong số chúng đều chứa mã độc, thậm chí trớ trêu thay là chúng nằm trong cả những plugin bảo mật WordPress, nhẹ hơn là SEO links của hacker mũ đen sẽ khiến website của bạn không bao giờ lên top nỗi. Nếu cài những bản này lên hosting, tức là website WordPress của bạn đang hoàn toàn không an toàn, và đang phơi nhiễm trước những lỗ hổng mà hacker đã tạo ra từ bên trong.

Ngừng dùng nulled plugins và themes ngay hôm nay là một trong các cách tốt nhất để bảo mật website WordPress. Nó không những vi phạm bản quyền mà còn ảnh hướng lớn đến tính bảo mật WordPress. Bạn có thể phải thanh toán nhiều tiền hơn cho lập trình viên để dọn dẹp website của bạn so với việc bỏ tiền ra mua theme hay plugin cần thiết.

Bước 6 – Quét WordPress để loại malware khỏi website WordPress

Hackers thường dùng các lỗ hổng của themes hoặc plugin để cài mã độc lên WordPress. Vì vậy, việc quét blog của bạn thường xuyên là rất quan trọng. Có rất nhiều plugin bảo mật WordPress tốt hiện nay. WordFence nổi bật nhất. Nó cho phép scan thủ công và tư động với nhiều thiết lập khác nhau. Bạn có thểm thậm chí restore files được chỉnh sửa và đã nhiễm mã độc với chỉ một vài cú click chuột. MIễn phí và mã nguồn mở, thực tế chỉ vậy thôi đã đủ để bạn cài ngay rồi phải không? Còn chờ gì nữa.

Một số plugin bảo mật WordPress tốt khác:

  • BulletProof Security – không giống WordFence, BulletProof không quét các files của bạn, mà chỉ cung cấp firewall, bảo mật database, và tương tự. Ưu điểm đặc biệt nhất là nó có thể được cấu hình và cài đặt trong vài cú click.
  • Sucuri Security – plugin bảo mật WordPress này sẽ bảo vệ bạn khỏi tấn công DOS, nó sẽ tạo một danh sách đen, quét website của bạn để phát hiện malware và quản lý tường lửa. Nếu phát hiện, nó sẽ thông báo qua email, Google, Norton, McAfee – các blacklist của những bộ máy này sẽ được tích hợp trong plugin này..

Hãy thử dùng tất cả. Bạn có thể tham khảo cách cài WordPress plugin tại đây.

Bước 7 – Chuyển Website WordPress  tới một hosting bảo mật hơn

Có vẻ lạ nhưng thống kê cho biết có hơn 40% website WordPress bị hack vì lỗi hổng bảo mật của trong tài khoản hosting của bạn. Chỉ cần con số này thôi đã đủ khiến bạn cân nhắc đổi hosting, và chuyển WordPress tới một web host bảo mật hơn. Bạn có thể xem bảng giá WordPress Hosting của chúng tôi, tất cả các gói đã được tăng cường bảo mật ngay từ đầu với giá chỉ VNĐ249.00/tháng
Có một số yếu tố thực tế khiến bạn cân nhắc chọn hosting mới:

  • Nếu là web host dạng chia sẻ, hãy đảm bảo lựa chọn nhà cung cấp uy tín, được cộng đồng WordPress tin dùng.
  • Có chức năng backup tự động.
  • Phải có tường lửa và công cụ quét virus

Bước 8 – Lưu trữ thường xuyên

Back WordPress

Kể cả website  lớn cũng có thể bị hack mỗi ngày kể cả khi thực tế chủ web đã tốn hàng nghìn đô la để gia tăng bảo mật website WordPress và cài hàng loạt plugin bảo mật WordPress.

Nếu bạn đang thực hiện theo hướng dẫn này và làm đầy đủ các bước, vẫn rất quan trọng để bạn backup WordPress website thường xuyên.

Có nhiều cách để backup, ví dụ như tải file WordPress về và xuất database ra hoặc sử dụng backup từ nhà cung cấp hosting của bạn. Có một cách khác là sử dụng WordPress Plugin. Phổ biến nhất là::

Bạn có thể backup và chuyển bacup sang dropbox qua WordPress backups vào Dropbox (hướng dẫn tiếng Anh). Backup là cách đơn giản và nhất để bảo mật cho WordPress, vì việc khôi phục từ file backup dễ hơn so với việc rà lỗi và xóa malware đi.

Bước 9 – Tắt chức năng File Editing

Như bạn biết, WordPress đã xây dựng chỉnh sửa file bên trong nhằm cho chép chỉnh sửa file gốc WordPress. Mặc dù rất tiện lợi, nhưng nó cũng có thể gây hại. Nếu hacker có quyền sử dụng vào trong dashboard của bạn, điều đầu tiên hắn nghĩ tới là FIle Editors, nhiều người dùng WordPress tắt hoàn toàn chức năng này ngay từ khi cài để tăng tính bảo mật WordPress files.  Nó có thể được tắt bằng cách sửa file wp-config.php thêm vào dòng code sau:

define( 'DISALLOW_FILE_EDIT', true );

Đó là tất cả những gì bạn cần biết để tắt phần mềm chỉnh sửa file trong WordPress.

QUAN TRỌNG, trong trường hợp muốn mở lại tính năng này, hãy dùng FTP clietn hoặc file manager của nhà cung cấp hosting của bạn và xóa dòng code trên khỏi wp-config.php file.

Bước 10 – Xóa Themes và Plugins không dùng

Dọn dẹp site WordPress của bạn và xóa những plugins hoặc themes không sử dụng cũng là một cách tốt để bảo mật cho WordPress. Hacker có thể quét những themes và plugins lỗi thời (kể cả plugin chính thức của WordPress) để truy cập vào trang Dashboard và upload phần mềm độc hại lên server của bạn. Bằng cách xóa plugins và themes bạn đã ngừng sử dụng (hoặc quên cập nhật) từ lâu, bạn đã giảm nguy cơ bị tấn công và giúp WordPress Site của bạn trở nên bảo mật hơn.

Bước 11 – Sử dụng .htaccess để bảo mật tốt hơn

.htaccess file được dùng để khiến các liên kết WordPress hoạt động. Không có các lệnh đúng trong .htaccess file ban sẽ gặp rất nhiều lỗi 404.

Rất nhiều người không biết .htaccess có thể tăng tính bảo mật website WordPress. Ví dụ, với .htaccess, bạn có chặn truy cập hoặc vô hiệu việc thực thi PHP trên một thư mục được chỉ định. Bên dưới là cách giúp bạn làm thế nào để dùng .htaccess để tăng tính bảo mật của WordPress.

QUAN TRỌNG Trước khi bắt đầu thực thi bất kỳ thay đổi nào, chúng tôi khuyên bạn cần backup file .htaccess cũ. Bạn có thể dùng FTP client hoặc File Manager để làm việc này.

Chặn truy cập tới trang quản trị WordPress

Dòng mã bên dưới chặn truy cập vào WordPress Administrator và chỉ cho phép một số địa chỉ IPs được chỉ định:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>

Lưu ý là bạn cần đổi XX.XX.XX.XXX tới địa chỉ IP của bạn. Bạn có thể dùng website này để xem IP hiện hành. Nếu bạn muốn dùng nhiều kết nối hơn để quản lý WordPress site, hãy đảm bảo tất cả IPs quản trị đã được thêm vào (bạn có thể thêm bao nhiêu dòng cũng được). Đoạn script trên không được khuyên dùng khi bạn có IP động.

Tắt khả năng thực thi PHP trong thư mục được chỉ định

Kẻ tấn công thích upload các scripts độc hại lên thư mục WordPress. Mặc định thư mục này được dùng để chứa file đa phương tiện. Vì vậy nó không nên được dùng để chứa file PHP. Bạn có thể dễ dàng vô hiệu chức năng thực thi PHP bằng cách tạo một file .htaccess trong thư mục /wp-content/uploads/ với các lệnh như sau:

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

Bảo vệ WordPress file wp-config.php

wp-config.php file chứa các cài đặt WordPress cốt lõi và thông tin chi tiết MySQL databases. Vì vậy đây là một file WordPress quan trọng nhất, cũng là file chính mà hacker thường nhắm tới để tấn công WordPress. Tuy nhiên, bạn có thể dễ dàng bảo vệ file này bằng lệnh sau trong .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

Bước 12 – Đổi database prefix của WordPress để ngăn chặn SQL injections

WordPress database chứa và lưu trữ tất cả những thông tin quan trọng nhất để site hoạt động. Vì vậy, nó trở thành một mục tiêu rất hấp dẫn cho hacker và spammer muốn thực thi các mã tự động để thực hiện SQL injection. Khi cài đặt WordPress, hầu hết mọi người không đổi prefix mặc định của WordPress là wp_. Dựa theo WordFence, 1 trong 5 trường hợp hacking WordPresss là dựa vào SQL injections. Khi wp_ được đặt mặc định, hacker sẽ chọn giá trị này để tấn công trước. Với bước này, bạn sẽ bảo vệ WordPress khỏi kiểu tấn công như vậy.

Đổi table prefix cho site WordPress đã có sẵn

QUAN TRỌNG! An toàn là tốt nhất. Hãy chắc rằng bạn đã backup/export WordPress MySQL database của bạn trước khi thực hiện.

Phần 1 – Đổi prefix trong file wp-config.php

Sử dụng FTP client hoặc File Manager để sửa file wp-config.php và tìm giá trị $table_prefix.Prefix wp_ mặc định WordPress

Bạn có thể thêm số, chữ, hoặc gạch dưới. Sau đó, lưu lại và tiếp tục theo bước sau. Trong bài hướng dẫn này, chúng tôi sử dụng wp_1secure1_ như cho table prefix.

Khi đang ở trong file wp-config.php, bạn hãy tìm tên database, để biết bạn cần chỉnh sửa database nào. Tìm mục define(‘DB_NAME’ section.database name trong wp-config

Phần 2 – Cập nhật các bảng databases

Bây giờ, bạn sẽ cần cập nhật tất cả các entries trong database WordPress của bạn. Việc này có thể được thực hiện bằng thay đổi trong phpMyAdmin.Truy cập phpMyAadmin WordPress

Tìm database bạn cần sửa ở phần 1 và truy cập vào phpmyadmintruy cập phpmyadmin

Mặc định WordPress có 12 bảng và tất cả cần được cập nhật. Tuy nhiên, bạn có thể làm nhanh hơn bằng cách vào mục SQL trong phpMyadmin.vào database trong phpmyadmin

Bạn có thể dùng các lệnh sau để đổi hàng loạt prefix cho tất cả các bảng trong database:

RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
RENAME table `wp_comments` TO `wp_1secure1_comments`;
RENAME table `wp_links` TO `wp_1secure1_links`;
RENAME table `wp_options` TO `wp_1secure1_options`;
RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
RENAME table `wp_posts` TO `wp_1secure1_posts`;
RENAME table `wp_terms` TO `wp_1secure1_terms`;
RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
RENAME table `wp_users` TO `wp_1secure1_users`;

Một vài WordPress themes hoặc plug-ins có thể tạo thêm bảng khác trong database. Trong trường hợp bạn có nhiều hơn 12 bảng trong MySQL database, thêm các bảng còn thiếu vào trong danh sách và thực thi nó.

Phần 3 – Kiểm tra bảng options và usermeta

Tùy thuộc vào số lượng plugins bạn đã cài đặt, nhiều giá trị trong database cần được cập nhật thủ công. Việc này có thể được làm qua bảng options  và usermeta bằng cách queries SQL riêng.

Với bảng options bạn có thể dùng:

SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'

Với bảng usermeta bạn có thể dùng:

SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'

Khi bạn đã có kết quả SQL query, chỉ cần cập nhật tất cả các giá trị từ wp_ tới prefix mới và như vậy đã hoàn tất. Trong bảng usermeta bạn sẽ có thể đổi trường meta_key, còn với bảng options, giá trị option_name cần được thay đổi.thay đổi prefix bằng query

Bảo mật WordPress khỏi việc cài đặt lại mới

Nếu bạn muốn cài đặt WordPress site mới, bạn sẽ không thực hiện các bước trên nữa. Bạn chỉ cần đơn giản đổi table trong quá trình cài đặt:prefix khi cài mới WordPress

Chúc mừng! Bạn đã giúp WordPress thoát khỏi kiểu tấn công SQL injection.

Lời kết

Mặc dù WordPress là một CMS bị hack nhiều nhất trên thế giới. Tuy nhiên, không khó khăn để tăng tính bảo mật WordPress của nó. Trong bài hướng dẫn này chúng tôi đã cung cấp đủ 12 thủ thuật quan trọng nhất để bạn làm theo nhằm giúp website của bạn bảo mật hơn rất nhiều, và hãy quên đi nỗi lo bị hack để tập trung xây dựng nội dung hơn.

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.