Bảo mật WordPress là việc mà hàng triệu chủ web WordPress luôn muốn và cần phải làm để đảm bảo an toàn cho website của mình. Bởi,
Theo thống kê mới nhất, WordPress hiện tại đang được dùng bởi hơn 34% tổng số website trên thế giới (khoảng 1.695.657.191 website theo thống kê của InternetLiveStats năm 2019). Như vậy đủ thấy mã nguồn WordPress phổ biến tới mức độ nào.
Bản thân nền tảng WordPress là rất tốt và an toàn nhưng nó vẫn có thể bị hacker tấn công bởi không có một hệ thống nào là bảo mật hoàn toàn. Tuy nhiên, hầu hết các lỗi phát sinh từ mã nguồn WordPress đều được fix rất nhanh chóng vậy nên trường hợp web bị tấn công chủ yếu đến từ việc bảo mật web WordPress chưa tốt của người dùng.
Để giúp bạn hạn chế tới mức cao nhất các trường hợp website bị tấn công và giúp bạn bảo mật WordPress tốt hơn. Dưới đây mình sẽ chia sẻ một số thủ thuật bảo vệ cho web WordPress của bạn.
1. Tài khoản quản trị không nên đặt là “admin” hoặc “root”
Ngay từ bước đầu tạo web WordPress, khi đặt tên tài khoản quản trị bạn không nên đặt là admin, administrator hay root,… Bởi, đây là những cái tên rất phổ biến và hacker có thể dùng cách thức tấn công là Brute Force Attack để cố gắng đăng nhập vào trang quản trị.
Nếu web của bạn đang để tài khoản quản trị theo cách kém bảo mật kia thì hãy đổi ngay đi nhé. Cách đổi có thể làm theo 2 cách như sau:
- Tạo 1 tài khoản với username mới và set quyền quản trị cao nhất cho nó. Sau đó, đăng nhập vào tài khoản mới và xóa tài khoản có username là admin kia đi (xem: hướng dẫn tạo tài khoản mới trong WordPress).
- Nếu bạn biết về quản trị cơ sở dữ liệu, đăng nhập vào trang PhpMyadmin sau đó tìm bảng
wp-users
và thay đổi username là admin trong cộtuser_login
thành tên username mới.
2. Đặt mật khẩu phức tạp, khó đoán
Cũng giống như username, việc đặt password quá đơn giản cũng rất dễ bị hacker dò ra. Khi đặt passwords, hãy tránh sử dụng ngày tháng năm sinh, số điện thoại, số CMND,… Mật khẩu an toàn sẽ bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.
Ngoài ra, mật khẩu cũng cần có độ dài nhất định (khoảng từ 8 – 12 ký tự). Với mình, mình thường dùng phần mềm LastPass để tạo và mật khẩu. Thế nên mình thường tạo mật khẩu dài khoảng 30 ký tự sau đó lưu nó trên phần mềm LastPass và không bao giờ phải nhớ và cũng chẳng bao giờ sợ quên mật khẩu.
3. Update WordPress, theme, plugin lên phiên bản mới nhất
Các phiên bản mới của WordPress, theme hay plugin thường sẽ là bản fix lỗi, cập nhật tính năng mới. Vậy nên bất cứ khi nào có thông báo cập nhật bạn hãy check changelogs xem bản cập nhật mới có gì mới.
Nếu nhận thấy bản cập nhật đó là fix lỗi thì bạn hãy backup lại web sau đó update ngay lên phiên bản mới để tránh rủi ro.
Việc backup web là cần thiết bởi bản cập nhật đó thể là bản nâng cấp tính năng và nhiều theme, plugin không tương thích sẽ gây ra lỗi cho web. Lúc này bản backup sẽ giúp bạn restore về tạm bản cũ và bạn có thời gian để tìm hướng khắc phục lỗi.
4. Backup dữ liệu web thường xuyên
Như vừa nói ở trên, không chỉ trước khi thực hiện update hay hành động gì can thiệp vào source web bạn mới cần phải backup. Các dữ liệu cần backup ở đây thường là database, code web.
Việc backup dữ liệu web cần được thực hiện thường xuyên (hàng ngày hoặc hàng tuần). Bạn có thể thực hiện việc backup thủ công hoặc tự động đều được. Nhưng để đỡ vất vả thì bạn nên thiết lập cho hệ thống backup tự động.
Nếu bạn đang chạy WordPress trên hosting, hãy tham khảo hướng dẫn backup web tự động sang server khác hoặc backup lên Google Drive, Dropbox.
Còn nếu bạn chạy web trên VPS thì cũng đừng lo, mình đã có bài hướng dẫn backup VPS lên Google Drive trên blog rồi đó. Bạn chỉ việc đọc và làm theo hướng dẫn thôi.
5. Không sử dụng các plugin, theme nulled
Plugin, theme nulled là các plugin, theme bản quyền (trả phí) được bẻ khóa và chia sẻ trên các trang download free.
Bạn hãy nhớ rằng, sẽ “không có gì là miễn phí” nên khi tải những theme, plugin này về dùng bạn hãy xác định sẽ nhận được “món quà” kèm theo. Những món quà này có thể là mã độc hay backlink mà người share nó dành tặng cho website của bạn.
Và đương nhiên, nếu là backlink thì có thể nó sẽ làm web bạn bị tụt SEO còn nặng hơn là chứa mã độc thì sớm muộn gì hacker cũng sẽ tấn công web của bạn.
6. Cài đặt bảo mật WordPress bằng xác minh 2 bước
Phương thức bảo mật 2 lớp hiện tại được áp dụng cho rất nhiều tài khoản như tài khoản Google, Facebook,… Nó giúp trang web của bạn được bảo vệ thêm 1 lớp nữa khi chẳng may ai đó biết được tài khoản và mật khẩu quản trị web của bạn.
Để thiết lập bảo vệ 2 lớp cho WordPress bạn chỉ cần làm theo hướng dẫn trong bài hướng dẫn cài đặt bảo mật 2 lớp cho WordPress trên blog của mình.
Ngoài ra, mình cũng có 1 bài hướng dẫn thiết lập bảo vệ trang admin WordPress bằng IP. Với cách đó, chỉ có những địa chỉ IP được phép mới có thể đăng nhập vào trang quản trị WordPress.
7. Lựa chọn nhà cung cấp hosting uy tín, chất lượng
Nếu bạn đang dùng VPS thì mình không nói vì VPS do bạn tự cấu hình và quản lý. Còn nếu bạn đang dùng share hosting (xem: hosting là gì) thì việc chọn nhà cung cấp uy tín chất lượng ảnh hưởng nhiều đến việc bảo vệ cho web WordPress của bạn.
Nếu bạn chọn nhầm NCC kém chất lượng, có thể bạn sẽ mất dữ liệu do chính NCC đó gây ra. Thêm nữa, các share hosting đều nằm trên cùng 1 hệ thống máy chủ nên khi 1 website trên hệ thống đó bị tấn công thì các web khác cũng có nguy cơ bị tấn công theo phương thức Local Attack.
Theo kinh nghiệm của mình, bạn nên chọn các nhà cung cấp hosting sử dụng CloudLinux OS. Bởi, với hệ thống này thì mỗi share hosting sẽ là 1 hệ thống tập tin ảo hóa riêng nên sẽ không bị ảnh hưởng khi website khác cùng hệ thống bị tấn công.
Hiện tại, mình thường tin dùng hosting của Hawkhost, Stablehost hoặc AZDIGI
8. Bảo mật thông tin quản trị hosting
Sau khi lựa chọn mua hosting từ 1 nhà cung cấp uy tín nào đó, việc quan trọng tiếp theo là bảo mật các thông tin hosting.
Thông thường, các thông tin đăng nhập hosting sẽ được gửi qua email. Bạn cần bảo vệ các thông tin đó, tránh để kẻ gian đánh cắp. Bởi, hosting là nơi chứa source web và chỉ cần để lộ thông tin hosting thì mọi việc làm bảo mật khác đều trở lên vô nghĩa.
Để bảo vệ hosting an toàn, bạn nên thường xuyên thay đổi mật khẩu đăng nhập bằng mật khẩu phức tạp, khó đoán. Ngoài ra, hosting của bạn có hỗ trợ thì hãy bật xác minh 2 bước lên để tăng cường bảo mật cho hosting.
9. Tắt chức năng sửa file plugin, theme trong admin
Việc này sẽ giúp website của bạn tránh bị phá khi ai đó có thể truy cập được vào trang quản trị web.
Có một số hacker khá tinh vi khi họ sẽ chèn rải rác 1 vài đoạn mã độc nào đó và các file trong plugin, theme trên web của bạn.
Vậy nên, giải pháp ở đây là hãy tắt chức năng sửa file trực tiếp trong WordPress Admin. Việc tắt chức năng này đồng nghĩa với việc, muốn sửa file nào đó bạn phải truy cập vào trình quản trị file thông qua FTP hoặc File Manager.
Cách tắt chức năng sửa file plugin, theme trong web rất đơn giản. Bạn chỉ cần chèn đoạn mã sau vào cuối nội dung của file wp-config.php
và lưu lại.
define('DISALLOW_FILE_EDIT',true);
10. Chặn cài mới và update theme, plugin
Việc làm này hơi có chút xung đột với thủ thuật thứ 3 ở trên, thế nhưng bạn đừng vội bỏ qua. Hãy nghe mình giải thích đã nhé.
Việc chặn cài mới theme, plugin đồng nghĩa với việc sẽ chặn các thông báo update nên bạn không thể thực hiện được việc update theme, plugin (update core WordPress thì vẫn nhận được thông báo).
Cũng giống như việc chỉnh sửa file, nếu bạn không chặn cài mới theme, plugin thì khi hacker chiếm được tài khoản quản trị có thể cài đặt mới 1 plugin, theme mà bên trong đó có thể chứa mã độc. Vậy nên, để đảm bảo an toàn hãy tắt chức năng cài mới plugin, theme.
Hãy chèn code dưới đây vào phía cuối file wp-config.php
để chặn cài mới plugin, theme.
define('DISALLOW_FILE_MODS',true);
Lưu ý: Do việc chặn này nên bạn sẽ không nhận được thông báo update plugin, theme. Vậy nên, thỉnh thoảng bạn hãy mở file wp-config.php
và chuyển giá trị từ true
sang false
rồi lưu lại và vào trang quản trị kiểm tra xem có plugin, theme nào có update không thì update. Update xong lại chuyển lại như cũ để chặn việc cài mới plugin, theme.
11. Phân quyền CHMOD cho tập tin, thư mục an toàn
Việc phần quyền cho thư mục và tập tin trên hosting phù hợp là rất cần thiết để đảm bảo an toàn cho web. Việc này giúp hạn chế các vụ tấn công nhắm vào mã nguồn web như đọc các thông tin nhạy cảm, tạo thêm các file vào trong các thư mục của web (xem: kiến thức về CHMOD cơ bản).
Cách CHMOD an toàn cho web bạn thực hiện như sau:
CHMOD an toàn cho thư mục (folder)
Thông thường, các thư mục của WordPress upload lên hosting mặc định sẽ được CHMOD là 755 sẽ hoạt động tốt.
Tuy nhiên, để tăng cường bảo mật hơn thì mình khuyên bạn nên CHMOD lại 2 thư mục wp-admin
và wp-includes
là 700. Việc CHMOD như vậy có nghĩa là chỉ có người tạo ra thư mục (chính là bạn) mới có quyền đọc, ghi và truy cập, còn nhưng người khác không được cấp quyền gì.
Lưu ý: Khi CHMOD là 700 cho thư mục như trên, nếu sau này khi cập nhật WordPress xảy ra lỗi bạn hãy chuyển CHMOD về 755 sau đó tiến hành update thủ công. Với mình thì chưa từng bị xảy ra lỗi nên mình vẫn để CHMOD là 700.
CHMOD an toàn cho tập tin (files)
Với tập tin thì thường sẽ được CHMOD là 644 là các file của web có thể hoạt động bình thường. Tuy nhiên, lời khuyên của mình là với 1 số tập tin nhạy cảm như .htaccess
, wp-config.php
thì nên CHMOD là 600 hoặc 400.
Trong đó, 600 là chỉ cho phép chủ sở hữu có quyền đọc, ghi còn 400 là chỉ cho phép chủ sở hữu quyền đọc file. Còn lại các user khác đều không được cấp quyền gì.
Với mình, thường các file .htaccess
, wp-config.php
mình luôn CHMOD là 400.
Tuy nhiên, khi cài một số plugin như plugin tạo cache WP Rocket, WP SuperCache, W3 Total Cache,… nó sẽ cần quyền ghi vào file wp-config.php
. Khi đó bạn sẽ phải CHMOD lại thành 644 để cài plugin rồi sau đó CHMOD lại thành 400.
12. Xóa các file backup, file .zip trên hosting
Đây là điều mà một số người thường không hay để ý tới mỗi khi backup source code hoặc chuyển source từ hosting khác sang hosting mới và cả upload code web lên hosting.
Thường các file backup web nhiều bạn hay để dạng domain.zip
, public_html.zip
,… hay 1 tên nào đó liên quan đến web mà dễ đoán rồi đặt ngay trong thư mục public_html
.
Nếu bạn đang làm như vậy, hãy kiểm tra thử bằng cách gõ https://domain.com/public_html.zip
là có thể tải được file .zip đó về và các hacker cũng vậy. Bằng 1 cách nào đó, họ scan được và tải file đó về thì coi như toàn bộ cấu trúc, thông tin về source web của bạn là họ sẽ nắm được. Như vậy thì họ có thể truy cập vào web của bạn và muốn làm gì cũng được.
Lời khuyên ở đây, khi chuyển hosting, upload code web lên hosting xong bạn nên xóa file .zip, .gz,… hoặc chuyển nó vào nơi nào đó an toàn. Nếu là backup web bạn nên thiết lập backup vào thư mục an toàn hoặc tốt hơn hết là upload lên Google Drive, OneDrive,.. sau đó xóa file trên hosting đi.
13. Cài đặt plugin bảo mật cho WordPress
Nếu bạn không phải là chuyên gia về bảo mật thì với WordPress bạn luôn được hỗ trợ bởi những plugin tuyệt vời có thể giúp bạn bảo vệ web.
Hiện tại tính cả plugin miễn phí và trả phí thì có rất nhiều plugin hỗ trợ tăng cường bảo mật cho WordPress. Tuy nhiên, ở đây mình chỉ giới thiệu cho bạn 2 plugin đang được nhiều người dùng nhất và nó cũng là plugin có nhiều chức năng bảo mật nhất.
Plugin Wordfence Security – Firewall & Malware Scan
Plugin bảo mật Wordfence Security này được phát triển bởi nhóm chuyên gia bảo mật WordPress.
Plugin Wordfence Security với nhiều giải pháp an toàn cho web WordPress như:
- Tạo tường lửa ngăn chặn tấn công và chặn lưu lượng độc hại.
- Quét và cảnh báo các mã độc, phần mềm độc hại cho web.
- Tạo Captcha đăng nhập để ngăn chặn bot đăng nhập
- Sửa chữa các tập tin đã bị thay đổi bằng cách ghi đè bằng các file gốc.
- Kiểm tra và cảnh báo các lỗ hổng bảo mật trên web của bạn.
Ngoài ra, với bản miễn phí còn rất nhiều tính năng nữa. Thêm vào đó, plugin cũng có bản trả phí với nhiều tính năng nâng cao.
Tuy nhiên nếu bạn định mua bản trả phí thì plugin Wordfence Security có giá khá chát. Theo mình thì bạn nên dùng miễn phí hoặc mua bản trả phí plugin iThemes Security mình sẽ nói ở phía dưới.
- Link tải bản miễn phí: Wordfence Security
- Link mua bản trả phí: Wordfence Security Premium
Plugin iThemes Security
Plugin iThemes Security là plugin đang được rất nhiều người dùng với bản miễn phí. Nhất là với phiên bản trả phí iThemes Security Pro nó là lựa chọn hàng đầu vì plugin có mức giá hợp lý.
Plugin iThemes Security với những tính năng bảo mật sau đây sẽ giúp bạn yên tâm hơn với web của mình.
- iThemes Brute Force Attack Protection: Hạn chế số lần đăng nhập sai và chặn địa chỉ IP đó để bảo vệ web.
- Quét trang web và cảnh báo ngay lập tức những lỗ hổng, phần mềm độc hại đang tồn tại.
- Tăng cường bảo mật máy chủ.
- Yêu cầu các mật khẩu mạnh và nhắc nhờ đổi mật khẩu trong 1 khoảng thời gian.
- Tắt chức năng sửa file trong trang quản trị.
- Phát hiện và chặn các cuộc tấn công vào database
- Thay đổi đường dẫn đăng nhập quản trị
- Tắt khả năng đăng nhập trong 1 thời gian nào đó
- Thay đổi tiền tố “prefix_” trong database
- Phát hiện các lỗi 404 trên web gây ảnh hưởng tới SEO
- Phát hiện các thay đổi tập tin và cảnh báo cho bạn biết nếu bị hack
- Tư động sao lưu database
Ngoài ra, còn rất nhiều chức năng khác của bản trả phí mà mình không thể liệt kê hết ở đây.
Nói chúng, với plugin bảo mật thì iThemes Security luôn là lựa chọn hàng đầu đối vơi các webmaster.
- Link tải bản miễn phí: iThemes Security
- Link mua bản trả phí: iThemes Security Pro
Bonus: Nếu không may web của bạn đã bị hacker tấn công, chắc chắn công việc đầu tiên phải làm đó là khôi phục lại web bị hack. Sau đó tìm hiểu nguyên nhân vì sao bị hack để có hướng bảo vệ. Và đương nhiên là sau khi khôi phục lại web thì bạn cần phải ngay lập tức thực hiện các biện pháp tăng cường bảo mật theo nhưng hướng dẫn ở trên.
Kết luận
Trên đây là một số những thủ thuật cơ bản giúp bảo vệ trang web WordPress của bạn khỏi những nguy cơ bị tấn công phá hoại. Việc bảo mật WordPress không chỉ đơn giản là thực hiện các công việc trên là có thể an toàn 100%.
Tuy nhiên, để đảm bảo web của bạn được bảo vệ ở mức cao nhất thì bạn nên áp dụng các thủ thuật bảo mật WordPress ở trên.
Nếu bạn thấy bài viết hữu ích cho bạn hãy like và share ủng hộ mình nhé. Ngoài ra, nếu bạn có cao kiến gì trong vấn đề bảo mật WordPress hãy share cho mình và mọi người biết bằng khung bình luận phía dưới nhé.
cám ơn anh Hùng đã chia sẻ! em đang follow các bước này.
Bài viết cũng khá đầy đủ rồi, nhưng để chuyên sâu hơn thì mình nghĩ là nên bổ sung thêm về Monitoring và phát hiện xâm nhập, SSL/TLS, Quản lý cập nhật,Quản lý quyền truy cập, Giới hạn số lần đăng nhập, Bảo vệ thư mục truy cập, thường xuyên kiểm tra mã độc tập tin thừa trong hosting, Giới hạn quyền truy cập vào tệp tin và kiểm soát dịch vụ bên thứ ba nữa.
Đúng rồi bạn. Trong bài là những phương pháp bảo mật cơ bản nhất thôi.
Cám ơn bài viết rất hay và bổ ích, xin cám ơn
bài viết rất chi tiết và chất lượng, cảm ơn bạn đã chia sẻ
Bài viết rất đầy đủ. Cảm ơn anh Hùng rất nhiều!
Cảm ơn bạn. Thỉnh thoảng ghé blog mình để đọc bài viết mới nhé.
Đó là những gì cần thiết nhất, website mình cũng có bị tấn công qua truy vấn sql, hacker thay đổi username và pass user. Hacker đã chiếm quyền điều khiển và có thể login vào trang quản trị. Một cách bảo mật cũng ko kém phần quan trong là change đường dẫn login wp để hacker ko thể đăng nhập mặc dù đã có tài khoản. Bạn có thể bảo sung nhé!
Cảm ơn bác. Đổi đường dẫn đăng nhập cũng là cách bảo mật rất tốt nên plugin iThemes Security Pro cũng có hỗ trợ luôn rồi.
Uh Hùng, nhiều lúc ko nghĩ đến nhưng thật sự khi xảy ra hậu quả mới tìm đến.
Cơ mà Blog bạn không có thông báo reply bình luận à, mình không nhận được thông báo 🙁
Đúng rồi bác. Ko bảo mật tốt đến lúc xảy ra lỗi khắc phục mệt lắm.
Site e cũng cố gắng làm những gì tốt nhất để giữ an toàn cơ mà vẫn không chắc có chặn đc các bác hacker không nữa.
À, phải tích vào nhận thông báo mới có thông báo qua email à. Nhưng thiết nghĩ thông báo mặc định vẫn tốt hơn đó bạn
Để nhận thông báo phải tích vào đồng ý mới có thông báo bác à. Chắc e phải cài đặt tự gửi thông báo khi có ai rep bình luận mới đc.
em đã áp dụng những cách trên, cảm ơn anh ạ
Chào Hùng, không biết bạn cái đánh giá 5 sao của kk ss star ranking bạn làm thế nào để nó hiển thị đẹp vậy.
Bạn chia sẻ mình với, cám ơn !
Hi bạn,
Cái này mình cài phiên bản mới nhất và có CSS lại 1 chút đó. Để lát mình viết bài hướng dẫn chia sẻ luôn và ngay cho bạn nhé.
Bài khá đầy đủ.