53706 lượt xem

Hướng dẫn bảo mật WordPress an toàn hiệu quả

WordPress được biết là một mã nguồn mở tốt nhất và dễ sử dụng nhất hiện nay. Đang được cộng đồng sử dụng làm blog cá nhân cho đến cửa hàng nhỏ và vừa sử dụng rộng rải.

Bên cạnh sự tiện lợi, dễ cài đặt, dễ sử dụng và hệ sinh thái theme, plugin phong phú thì mã nguồn wordpress này lại tồn tại khá nhiều lỗ hổng bảo mật. Do đó, bảo mật wordpress là việc cần làm quan trọng nhất trong việc muốn phát triển website lâu dài.

Bảo mật wordpress bằng cách đổi file kết nối API XMLRPC.PHP


Thang điểm an toàn: 67%

Khắc phục được các tình huống sau: Dò mật khẩu admin, submit sitemaps tiếng nhật, tiếng trung quốc, edit code, chèn table wp-datalist,….

Theo thông tin từ một số nguồn tài liệu chính thức từ wordpress, thì hiện nay việc hacker tấn công qua cổng xmlrpc.php đang ngày càng gia tăng và chưa có chiều hướng giảm dần.

Minh họa biểu đồ tấn công qua xmlrpc.php của wordpress

Cách thức tấn công qua giao thức này là:

  1. Hacker kết nối phần mềm quét mật khẩu qua đường link https://domaincuaban/xmlrpc.php – username:password
  2. Username thông thường là hacker dò thông qua bài viết hoặc thông thường là (admin,domaincuaban,user cộng tác viên,…)
  3. Sau khi có được tài khoản của bạn, hacker sẽ vào wp-admin và cài đặt các mã nguồn shell, realtime directory (code điều khiển hosting, hiện nay hosting linux chưa tự nhận dạng được).

Đó là lý do tại sao bạn liên tục đổi mật khẩu, theme và plugin bản quyền nhưng website vẫn luôn bị tấn công.

Khắc phục lỗi nghiêm trọng này:

  1. Bạn vào hosting mà bạn quản lý, sẽ thấy file xmlrpc.php nằm ngang hàng với index.php
  2. Bạn có thể xóa file xmlrpc.php nếu bạn không dùng website kết nối với Apps mobile, apps mở rộng ứng dụng, hoặc sử dụng các tính năng của các hệ thống chăm sóc website tự động.
  3. Trường hợp bạn bắt buộc cần phải sử dụng xmlrpc.php bạn nên đổi tên lại file này theo cách nhớ tên của bạn để tránh người khác dò ra được.

Chú ý: Hiện nay có 1 số plugin hỗ trợ các tính năng chặn POST lên xmlrpc.php. Tuy nhiên mình test và debug vẫn được bình thường.

Bảo mật WordPress bằng cách chặn request liên tục vào website


Thang điểm an toàn: 15%

Khắc phục được các tình huống sau: Hacker liên tục gửi request vào website của bạn. Website của bạn không chịu tải và xãy ra lỗi. Hoặc khi có 1 file nào đó bị hacker thây đổi nội dung, mã hóa file. Hệ thống sẽ tự gửi email cho bạn.

Khắc phục tình huống này:

  1. Bạn nên cài plugin Wordfence (Theo dõi file thây đổi, theo dõi ai đang truy cập, ghi lại các con đường tấn công mà hacker đã thao tác).
  2. Bạn nên cài plugin iThemes Security (Thây đổi đường dẫn wp-admin, chặn ai đó login sai nhiều lần, thông báo kích thước file bị thay đổi)

Bảo mật WordPress bằng cách chặn chỉnh sửa file php wordpress


Thang điểm an toàn: 6%

Khắc phục được các tình huống sau: Bạn bị lộ tài khoản admin, hoặc cho ai đó mượn để sửa website.

Chắc bạn đã từng bị chèn những quảng cáo, hoặc bị chèn mã độc vào website khiến cho người dùng vào website của bạn cảm thấy khó chịu.

Khắc phục tình huống này:

  1. Bạn vào hosting tìm đến file wp-config.php
  2. Bạn copy và dán vào cuối cùng của file wp-config.php đoạn sau.

Đoạn code: 

define('DISALLOW_FILE_EDIT',true);

Vậy là đã an toàn rồi.

Bảo mật WordPress bằng cách chặn thêm plugin, theme mới wordpress


Thang điểm an toàn: 5%

Khắc phục được các tình huống sau: Bạn bị lộ tài khoản admin, hoặc cho ai đó mượn để sửa website, backup website.

Để hạn chế tối đa các tình huống khó xử, các tình huống website bị ai đó login và backup hoặc nhiều kỹ thuật khác. Bạn nên chặn luôn tính năng upload plugin, upload theme.

Khắc phục tình huống này:

  1. Bạn vào hosting tìm đến file wp-config.php
  2. Bạn copy và dán vào cuối cùng của file wp-config.php đoạn sau.

Đoạn code: 

define('DISALLOW_FILE_MODS',true);

Vậy là đã an toàn thêm rồi đó. Hihi

Bảo mật WordPress bằng cách thay đổi khóa bảo mật WordPress


Thang điểm an toàn: 3%

Khắc phục được các tình huống sau: Dò kết nối mặt định thông qua các cổng api của wordpress.

Khóa bảo mật là những khai báo rất quan trọng trong file wp-config.php. Nếu bạn đang nghĩ ai đó đang có ý định tấn công website của bạn. Hãy nhanh chống đổi tất cả những khóa này qua đường link của nhà phát triển tại API của WordPressSau khi truy cập vào, bạn copy và thây thế các dòng tương ứng trong wp-config.php.

Bảo mật WordPress bằng cách ẩn thông báo đăng nhập khi nhập sai


Thang điểm an toàn: 2%

Khắc phục được các tình huống sau: Đăng nhập vào link wp-login.php liên tục để tìm mật khẩu.

Mặc định của wordpress khi login sai sẽ hiển thị thông báo là (Tài khoản không tồn tại, mật khẩu không chính xác). Bạn cần ẩn luôn thông báo này để hacker gặp thêm khó khăn trong viêc biết được trạng thái đăng nhập.

Khắc phục tình huống này:

  1. Bạn chỉ cần sao chép đoạn code dưới đây và dán vào file functions.php trong theme bạn đang dùng.

Đoạn code

add_filter('login_errors', create_function('$a', "return null;"));

Bảo mật WordPress bằng cách Thay đổi tiền tố – Table Prefix


Thang điểm an toàn: 1%

Khắc phục được các tình huống sau: Local Attack (Kỹ thuật dò file quản trị, sql cùng 1 hệ thống. Thường gặp ở hosting share).

Table Prefix là tiền tố của các bảng trong Database của wordpress. Mặc định ban đầu sau khi cài đặt wordpress thành công là wp_tên table

Khắc phục tình huống này: Bạn cài plugin WP Prefix Changer. Sau đó bạn có thể đổi lại thành Prefix bạn muốn.

Lưu ý: Bạn bắt buộc phải backup lại Database. Tránh trường hợp bị lỗi sql làm website bạn không thể hoạt động.

Bảo mật WordPress khỏi SQL Injection bằng Functions


Thang điểm an toàn: 1%

Khắc phục được các tình huống sau: Website có dùng chức năng portfolio, chức năng filter parameter.( Định dạng như: p=123&portfolio=123&tag=wordpress).

SQL Injection là một phương pháp khá nỗi tiếng trong những năm 2008-2012 và website bị lỗi thường chạy trên hosting có version php cũ như 5.2 – 5.3.

Hacker tấn công bằng cách thêm các query trực tiếp lên SERVER PHP cho website của bạn, và tất nhiên rất nhiều khả năng website của bạn sẽ gặp lỗi này.

Khắc phục lỗi này:

  1. Update version php lên: 5.6.1. Tốt nhất là 7.x như hiện nay.
  2. Dùng chức năng code chặn Request server trong functions.php của theme đang dùng.
  3. Dùng chức năng chặn SQL Injection đã tích hợp sẳn có trong control VPSSIM.

Code chặn request server SQL Injection

global $user_ID; if($user_ID) {
        if(!current_user_can('administrator')) {
                if (strlen($_SERVER['REQUEST_URI']) > 255 ||
                        stripos($_SERVER['REQUEST_URI'], "eval(") ||
                        stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
                        stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
                        stripos($_SERVER['REQUEST_URI'], "base64")) {
                                @header("HTTP/1.1 414 Request-URI Too Long");
                                @header("Status: 414 Request-URI Too Long");
                                @header("Connection: Close");
                                @exit;
                }
        }
}

Kết luận: Chỉ bằng những thủ thuật cơ bản, hy vọng chúng tôi đã giúp bạn giảm nguy cơ bị tấn công wordpress tốt nhất. Chúng tôi sẽ luôn cập nhật những phương pháp mới giúp bạn bảo vệ website tốt hơn.


Bài viết có sử dụng tài liệu của: SuCuRi, LaiVanDuc, Internet

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *