Hôm nay nhân dịp kỷ niệm ngày mình chưa làm bảo mật website 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 ( Ngày mấy mình quên mất, lâu rồi không nhớ ) nên Web An Tâm nhà mình quyết định viết bài này để giúp bà con gần xa bảo mật website wordpress tốt hơn
- Bảo mật WordPress là một chủ đề có tầm quan trọng rất lớn đối với mọi chủ sở hữu trang web. Google đưa vào danh sách đen khoảng hơn 10.000 trang web mỗi ngày vì phần mềm độc hại và khoảng 50.000 trang web lừa đảo mỗi tuần.
- Nếu bạn nghiêm túc với trang web của mình, thì bạn cần chú ý đến các phương pháp hay nhất về bảo mật WordPress. Trong hướng dẫn này, Web An Tâm sẽ chia sẻ tất cả các mẹo bảo mật WordPress hàng đầu để giúp bạn bảo vệ trang web của mình 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 chỉ là loại bỏ rủi ro. Đó cũng là giảm thiểu rủi ro. Là chủ sở hữu trang web, bạn có thể làm rất nhiều việc để cải thiện bảo mật website WordPress của mình (ngay cả khi bạn không rành về công nghệ).
Giới thiệu vài câu cho vui thế thôi, bắt đầu nào bà con ơi !, không hiểu sao hôm ni viết dài dòng văn tự rứa ( bình thường mình viết ngắn lắm )
Luôn cập nhật phiên bản WordPress và các plugin mới
- 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 nhiều ký tự đặc biệt
Theo thống kê khoảng 8% các trang web WordPress bị tấn công là do mật khẩu yếu. Cách hack wordpress phổ biến nhất là các hacker sẽ dùng những tool để đoán mò mật khẩu và cướp quyền truy cập website của bạn . Bạn có thể làm khó điều đó bằng cách sử dụng mật khẩu mạnh hơn dành riêng cho trang web của mình. Không chỉ cho khu vực quản trị WordPress mà còn cho 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 yêu cầu nhập thêm mã pin
Ở đây mình dùng plugin iThemes Security nên mình sẽ set bảo mật 2 lớp bằng plugin này ( Có nhiều cách làm lắm, ở đây sẵn có plugin này nên mình set ngay trên plugin này luôn ) khi đăng nhập user và pass vào admin 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ái này cũng đơn giản thôi, nên phần setup mình sẽ bỏ qua nhé !
Đổ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
- 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
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.
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
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
// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );
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
- 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 )
Ẩ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.
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
- 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`;
Thêm câu hỏi bảo mật vào trì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.
- Bạn có thể thêm câu hỏi bảo mật bằng cách cài đặt plugin wp-security-questions
- 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 )
- 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 )
- 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 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 )
- 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é
[code]
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
[/code]
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 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
Cuối cùng chúc các bạn có 1 cuộc sống vui vẻ và hạnh phúc, chào thân ái và tạm biệt