Nhân dịp kỷ niệm ngày website của mình chưa làm bảo mật và bị hacker tấn công chèn quảng cáo và hacker đó đã bị mình ngăn chặn ngay lập tức, nên mình quyết định viết bài này để chia sẻ, giúp các bạn có thêm những kinh nghiệm bảo mật website wordpress tốt hơn trong thời buổi “loạn lạc” hiện nay.
bảo mật website wordpress
Bảo mật WordPress là một vấn đề rất quan trọng đối với mọi chủ sở hữu trang website. Mỗi ngày, Google đưa vào danh sách đen (blacklist) hơn 10.000 trang website vì dính phần mềm độc hại và khoảng 50.000 trang website lừa đảo vào mỗi tuần.
Nếu bạn nghiêm túc và muốn bảo vệ trang web của mình, bạn cần phải chú ý đến các phương pháp hay nhất về bảo mật Website WordPress. Trong hướng dẫn này, Team NCN sẽ chia sẻ các cách bảo mật WordPress hàng đầu để giúp các bạn bảo vệ trang website khỏi tin tặc và phần mềm độc hại.
Chúng tôi tin rằng bảo mật không là loại bỏ rủi ro, đó là giảm thiểu rủi ro. Là chủ sở hữu trang website hay người vận hành, bạn có thể làm rất nhiều việc để giúp tăng cường bảo mật website WordPress của mình (ngay cả khi bạn không rành về code hay công nghệ chuyên sâu).
Cập nhật phiên bản WordPress và các plugin lên phiên bản mới nhất
WordPress là một phần mềm mã nguồn mở được bảo trì và cập nhật thường xuyên. Theo mặc định, WordPress sẽ tự động cài đặt các bản cập nhật nhỏ. Đối với các bản phát hành chính, bạn cần bắt đầu cập nhật theo cách thủ công.
WordPress cũng đi kèm với hàng nghìn plugin và chủ đề mà bạn có thể cài đặt trên trang web của mình. Các plugin và chủ đề này được duy trì bởi các nhà phát triển bên thứ ba, họ cũng thường xuyên phát hành các bản cập nhật.
Các bản cập nhật WordPress này rất quan trọng đối với tính bảo mật và tính ổn định của trang web WordPress của bạn. Bạn cần đảm bảo rằng lõi, plugin và chủ đề WordPress của bạn được cập nhật.
Đặt mật khẩu mạnh với độ dài tốt, nên dùng nhiều ký tự đặc biệt
Đặt mật khẩu mạnh với nhiều ký tự đặc biệt
Theo thống kê, khoảng 8% các website WordPress bị tấn công nguyên nhân do mật khẩu yếu. Cách hack website wordpress phổ biến nhất là các hacker sẽ dùng những tool (công cụ) để đoán mò mật khẩu (password) và cướp lấy quyền truy cập website của bạn. Bạn có thể làm khó việc đó bằng cách sử dụng mật khẩu mạnh hơn dành riêng cho website của mình. Không phải chỉ cho khu vực quản trị của WordPress mà hãy đặt mật khẩu mạnh cho cả các tài khoản FTP, cơ sở dữ liệu, tài khoản lưu trữ WordPress….
Kích hoạt bảo mật 2 lớp cho website bằng cách yêu cầu nhập thêm mã pin
Có nhiều plugin hỗ trợ việc này. Ở đây, mình sử dụng plugin iThemes Security. Khi đăng nhập user và pass vào admin ĐÚNG, thì sẽ có mã pin gửi về Email, nhập đúng mã pin đó mới truy cập trang quản trị wordpress được.
Các bạn có thể tham khải video setup ở dưới đây:
Đổi đường dẫn vào admin bằng plugin iThemes Security
Có nhiều plugin và nhiều cách để đổi đường dẫn vào admin, nhưng đây mình đang dùng plugin ithemes Security thì mình đổi bằng plugin này luôn
Sau khi đã cài đặt plugin iThemes Security trên website rồi thì bạn truy cập menu Security -> Settings và chọn vào mục Advanced sau đó ở tab Hide Backend bạn chọn Configure Settings
đổi đường dẫn vào admin bằng plugin iThemes Security
Tích chọn mục Enable the hide backend feature.
Login Slug: Đường dẫn url mới để truy cập trang đăng nhập admin của bạn
Register Slug: Đường dẫn url mới để truy cập trang đăng ký tài khoản nếu bạn đang kích hoạt mục đăng ký thành viên cho website
Enable Redirection: Tích vào để chuyển hướng trang khi có một ai đó truy cập vào link admin cũ của website bạn
Đổi đường dẫn vào trang admin bằng plugin iThemes Security
Cài đặt chứng chỉ SSL/HTTPS
SSL (còn gọi là lớp cổng bảo mật) là một giao thức mã hóa truyền dữ liệu giữa trang website của bạn với trình duyệt của người dùng. Mã hóa này khiến người khác khó đánh hơi và đánh cắp thông tin hơn.
cách hoạt động của chứng chỉ ssl
Khi bạn bật SSL, trang web của bạn sẽ sử dụng giao thức HTTPS thay vì HTTP, bạn cũng sẽ thấy dấu hiệu ổ khóa bên cạnh địa chỉ url trang web của mình trên trình duyệt.
Vô Hiệu hóa trình chỉnh sửa code trong website của bạn
Tắt trình chỉnh sửa code trong wordpress
WordPress đi kèm với trình chỉnh sửa code tích hợp cho phép bạn chỉnh sửa các giao diện và plugin trong khu vực quản trị WordPress của mình. Trong tay kẻ xấu, tính năng này có thể là một rủi ro bảo mật, đó là lý do tại sao Web An Tâm khuyên bạn nên tắt tính năng này.
Bạn có thể dễ dàng thực hiện việc này bằng cách thêm code sau vào tệp wp-config.php trong source code của bạn
Khi nào bạn cần bật lại thì bạn chỉ cần đổi dòng code define( 'DISALLOW_FILE_EDIT', true ); thành define( 'DISALLOW_FILE_EDIT', false ); trong tệp wp-config.php là được
Vô hiệu hóa thực thi tệp PHP trong một số thư mục WordPress nhất định
Một cách khác để tăng cường bảo mật WordPress của bạn là vô hiệu hóa việc thực thi tệp PHP trong các thư mục không cần thiết, chẳng hạn như /wp-content/uploads/.
Bạn mở Notepad ở máy tính của bạn lên và cho đoạn code dưới đây vào và lưu ở dạng .htaccess
<Files *.php> deny from all <Files>
Sau đó, bạn tải tệp này lên thư mục /wp-includes/ và /wp-content/uploads/ trên sever lưu trữ của bạn ( ảnh minh họa ở dưới )
Khi tệp .htaccess có mã ở trên được thêm vào, nó sẽ ngăn mọi tệp PHP chạy trong các thư mục này.
Ẩn Phiên bản wordpress
Các anh hacker có thể đột nhập vào trang web của bạn dễ dàng hơn nếu chúng biết bạn đang chạy phiên bản WordPress nào. Họ có thể sử dụng các lỗ hổng của phiên bản đó để tấn công trang web của bạn, đặc biệt nếu đó là phiên bản WordPress cũ hơn.
Để ẩn phiên bản khỏi tiêu đề và nguồn cấp RSS, hãy dán đoạn mã sau vào tệp functions.php :
function dartcreations_remove_version() { return ''; } add_filter('the_generator', 'dartcreations_remove_version'); remove_action('wp_head', 'wp_generator');
Thay đổi tiền tố bảng trong wp-config.php
Thay đổi tiền tố bảng trong wp-config
Mở tệp wp-config.php nằm trong source code WordPress của bạn. Thay đổi dòng tiền tố của bảng từ wp_ thành một tên khác như wp_a12345678_
bạn tìm đến dòng code $table_prefix = 'wp_'; trong thư mục wp-config.php và đổi nó thành 1 tên khác như $table_prefix = 'wp_a12345678_'; sau đó nhấn lưu lại là xong
Thay đổi tất cả tên bảng database
Có tổng cộng 11 bảng WordPress mặc định, vì vậy việc thay đổi chúng theo cách thủ công sẽ rất lâu nên mình sẽ chỉ cho bạn cách đơn giản và nhanh chóng hơn dưới đây
Bạn vào phpmyadmin trong databse vào chạy các dòng lệnh sau trong tab SQL mình đã làm sẵn ( các bạn có thể đổi tên theo ý muốn nhé ):
RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;
Thay đổi tất cả tên bảng database
Thêm câu hỏi bảo mật vào trình đăng nhập WordPress
Thêm câu hỏi bảo mật vào màn hình đăng nhập WordPress
Việc thêm câu hỏi bảo mật vào màn hình đăng nhập WordPress của bạn khiến người khác khó truy cập trái phép hơn.
Sau khi kích hoạt, bạn cần truy cập trang Settings » Security Questions để định cấu hình cài đặt plugin.
Vô hiệu hóa lập chỉ mục và duyệt thư mục
Trình duyệt thư mục có thể được tin tặc sử dụng để tìm hiểu xem bạn có bất kỳ tệp nào có lỗ hổng đã biết hay không, vì vậy chúng có thể lợi dụng các tệp này để giành quyền truy cập.
Trình duyệt thư mục cũng có thể được người khác sử dụng để xem các tệp của bạn, sao chép hình ảnh, tìm hiểu cấu trúc thư mục của bạn và các thông tin khác. Đây là lý do tại sao bạn nên tắt tính năng lập chỉ mục và duyệt thư mục.
Cách kiểm tra tính năng duyệt thư mục có được bật trong WordPress không
Cách dễ nhất để kiểm tra xem trình duyệt thư mục hiện có được bật cho trang web WordPress của bạn hay không bằng cách truy cập liên kết thư mục /wp-includes/ như sau: https://webantam.com/wp-includes/ . Bạn nhớ đổi tên miền webantam.com bằng tên miền của bạn nhé
Nếu bạn thấy một danh sách các tệp và thư mục thì điều này có nghĩa là tính năng duyệt thư mục được bật cho trang web của bạn. Điều này sẽ tạo lỗ hỏng cho hacker tấn công trang web của bạn ( Xem ảnh ở dưới )
hoạt động duyệt thư mục được bật
Thay vào đó, nếu bạn nhận được thông báo 403 Forbidden hoặc thông báo tương tự, thì tính năng duyệt thư mục đã bị tắt trên trang web WordPress của bạn ( Điều đó có nghĩa là website của bạn An Toàn ) ( Xem ảnh minh họa ở dưới )
tính năng duyệt thư mục đã bị tắt trên trang web WordPress của bạn
Như thế là đã rõ ràng rồi đúng không, vậy mình sẽ chỉ cho bạn cách vô hiệu hóa duyệt thư mục trong wordpress đơn giản như sau. Bạn chỉ cần cho đoạn code dưới đây vào cuối thư mục .htaccess là được ( Ảnh minh họa phía dưới )
Options -Indexes
vô hiệu hóa duyệt thư mục trong WordPress
Vô hiệu hóa XML-RPC trong WordPress
XML-RPC được bật theo mặc định trong WordPress 3.5 vì nó giúp kết nối trang web WordPress của bạn với các ứng dụng web và di động.
Do tính chất mạnh mẽ của nó, XML-RPC có thể khuếch đại đáng kể các cuộc tấn công từ hacker.
Ví dụ: theo truyền thống, nếu một hacker muốn thử 500 mật khẩu khác nhau trên trang web của bạn, họ sẽ phải thực hiện 500 lần thử đăng nhập riêng biệt, những lần này sẽ bị bắt và chặn bởi plugin khóa đăng nhập.
Nhưng với XML-RPC, tin tặc có thể sử dụng hàm system.multicall để thử hàng nghìn mật khẩu
Đây là lý do tại sao nếu bạn không sử dụng XML-RPC thì chúng tôi khuyên bạn nên tắt nó đi để bảo mật trang web wordpress của bạn hơn
Để vô hiệu hóa XML-RPC trong wordpress thì có các cách như sau
Cách 1: Nếu bạn đang dùng plugin ithemes Security thì bạn chọn Security -> Settings -> WordPress Tweaks và chọn Disable XML-RPC là được nhé ( Ảnh Minh họa )
Vô hiệu hóa XML-RPC bằng plugin ithemes Security
Cách 2: Bạn chỉ cần thêm đoạn code sau đây vào file functions.php là được nhé
add_filter('xmlrpc_enabled', '__return_false');
Cách 3: vô hiệu hóa WordPress XML-RPC bằng .htaccess . bạn chỉ cần dán đoạn mã sau vào tệp .htaccess của mình là được
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files>
Cách 4: Nếu như bạn đang sử dụng NGINX làm backend (sử dụng đồng thời với PHP-FPM) và muốn vô hiệu hóa WordPress XML-RPC thì chỉ cần cho đoạn code dưới đây vào tập tin cấu hình tên miền trên NGINX là được nhé
Sau khi đã bỏ đoạn code trên vào xong bạn cần phải khởi động lại NGINX sử dụng đoạn code dưới đây
service nginx restart
Tự động đăng xuất Người dùng không hoạt động trong WordPress
Người dùng đã đăng nhập đôi khi họ có thể rời khỏi màn hình máy tính và điều này gây ra rủi ro bảo mật cho website của bạn. Ai đó có thể chiếm quyền điều khiển máy tính của bạn, thay đổi mật khẩu hoặc thực hiện các thay đổi đối với tài khoản của bạn
Đây là lý do tại sao nhiều trang web ngân hàng và tài chính tự động đăng xuất người dùng không hoạt động. Bạn cũng có thể triển khai chức năng tương tự trên trang web WordPress của mình bằng cách cài đặt plugin Inactive Logout
Bạn cài đặt và kích hoạt plugin Inactive Logout. Sau khi kích hoạt, hãy truy cập trang Settings » Inactive Logout để định cấu hình cài đặt plugin.
Tự động đăng xuất Người dùng không hoạt động trong WordPress
Bạn chỉ cần đặt khoảng thời gian và thêm thông báo đăng xuất và nhấn vào lưu thay đổi là xong
Nguyễn Công Nam
Nguyễn Công Nam
Tôi là Nguyễn Công Nam - CEO tại Dịch vụ marketing tổng thể Azolux. Bằng những hiểu biết và kinh nghiệm của mình trong lĩnh vực marketing và bán hàng, tôi đã ứng dụng và triển khai cho đội nhóm và kết quả đạt được là lượng khách hàng chất lượng. Hy vọng với những kiến thức mà tôi chia sẻ có thể mang đến nhiều giá trị cho bạn/ doanh nghiệp của bạn.