1. Máy chủ và Host
Lưu trữ trang web của bạn trên một máy chủ chạy PHP 5.2 hoặc tốt hơn trong chế độ CGI với Su_PHP. Su_PHP về cơ bản là cho phép việc thực thi kịch bản dưới một tài khoản người dùng cụ thể, trái ngược với tài khoản mặc định của Apache. Điều này giúp bạn dễ dàng xác định và theo dõi các phạm vi bảo mật. Đảm bảo rằng bạn đang sử dụng phiên bản Apache mới nhất và cấu hình Apache không cho phép duyệt web/lập chỉ mục (browsing/indexing). Các quản lý CNTT cũng cần phải đảm bảo có các thiết lập thích hợp cho vị trí lưu trữ file .htaccess, serverconfig và php.ini.
2. Sử dụng các tài khoản và Permission
Joomla hoạt động tốt ngay từ đầu sau khi cài đặt đúng cách lên máy chủ. Bạn cần thiết lập toàn bộ các file CHMOD sang 644 và các thư mục sang 755. Có một số ngoại lệ cho quy tắc này như file configuration.php sẽ chuyển CHMOD sang 640. Phải đảm bảo là không có gì được thiết lập sang tới 777.
Tên tài khoản quản trị mặc định thường là “admin“, bạn phải thay đổi ngay tên tài khoản này. Nó sẽ làm cho hacker khó khăn hơn một chút trong việc tìm kiếm chi tiết tên tài khoản. Bạn cũng có thể thay đổi cả tên trang quản trị của website
3. Kích hoạt và sử dụng file htaccess
Theo mặc định, các tập tin htaccess không được sử dụng. Hãy chắc chắn rằng bạn đổi tên nó từ .htaccess.txt sang .htaccess, sau đó nó cần phải được đặt trong thư mục gốc của website. Bạn cũng có thể thêm một số quy tắc rewrite cho nó để ngăn chặn khả năng bị khai thác. Bạn có thể tìm thấy hướng dẫn chỉnh sửa các tập tin htaccess tại đây. Điều này sẽ thêm được một lớp bảo vệ bổ xung cho hệ thống, đồng thời cũng tốt cho SEO
4. Quản lý cẩn thận các cài đặt mở rộng (extension)
Phần mở rộng của bên thứ ba chính là thứ khiến Joomla trở nên cực kỳ phổ biến, nhưng nó cũng nhiều lần là con đường để đi vào website của bạn. Mỗi phần mở rộng khác nhau là một đối tượng mà bạn cần cập nhật các bản vá một cách thường xuyên. Đây cũng chính là lý do mà bạn cần xem xét chỉ cài đặt những mở rộng thực sự cần thiết. Bạn nên chắc chắn thực hiện các bước sau:
- Thực hiện code review cho bất kỳ phần mở rộng nào sử dụng
- Chạy một bộ kiểm tra (có rất nhiều trên mạng) và xem xét lại kết quả.
- Cập nhật và vá lỗi cho phần mở rộng khi cần thiết.
Hãy nhớ rằng, một phần mở rộng không an toàn có thể gây hại cho toàn bộ website của bạn.
5. Sao lưu và xử lý sự cố
Lập trước các phác thảo những gì sẽ xảy ra nếu bạn trở thành nạn nhân. Phải ghi nhớ: “Backup sớm và thường xuyên“. Nếu bước này thực hiện tốt thì áp lực lớn nhất khi website bị tấn công đã không còn, vì dữ liệu là quan trọng nhất thì bạn đã luôn backup rồi. Thực hiện backup hàng ngày hoặc thậm chí – nếu có thể – là hàng giờ để đảm bảo khi khôi phục lại thì website của bạn không có thời gian chết hoặc mất dữ liệu. Khi đã luôn sẵn có một bản backup rồi thì việc cần lo duy nhất khi có vấn đề xảy ra là tìm kiếm lỗ hổng trên website.
6. Bảo vệ mật khẩu
Các cuộc tấn công phổ biến thường nhắm mục tiêu vào mật khẩu yếu. Hãy lập một thói quen tốt: Thường xuyên thay đổi mật khẩu và nó phải đảm bảo đủ 4 yếu tố: chữ hoa, chữ thường, ký tự đặc biệt và số.
Cơ sở dữ liệu (CSDL) của bạn rất quan trọng. Một tấn công SQL injection hay bất kỳ loại tấn công nào khác vào CSDL cũng có thể khiến công sức cả tháng trời của bạn tan biến. Hãy chắc chắn rằng truy cập CSDL của bạn là mật khẩu bảo vệ ở mức MySQL. Hãy thử sử dụng các công cụ như Nikto hoặc Nmap để quét hệ thống, tìm kiếm các khai thác mở và điểm yếu.
7. Gỡ bỏ các tập tin không sử dụng
Bạn cài đặt thử rất nhiều phần mở rộng nhưng không sử dụng đến nó? Đây không chỉ là một điểm yếu mà còn gây rác cho máy chủ của bạn. Hãy xóa bỏ chúng hoàn toàn để tránh phiền phức có thể xảy ra.
8. Thay đổi Prefix bảng mặc định
Phần lớn các tấn công SQL injection thường cố gắng truy cập vào bảng CSDL jos_users. Một khi tin tặc có thể truy cập tập tin này thì họ có được tên tất cả người dùng và mật khẩu tương ứng – bao gồm cả quản trị viên cấp cao. Sử dụng một tên ngắn, ngẫu nhiên để thay thế tên mặc định này giúp ngăn chặn phần lớn các cuộc tấn công CSDL.
Nếu đang dùng Joomla 1.5, bạn có thể sử dụng các thành phần quản trị DB để thực hiện điều này. Nếu đang sử dụng bản 1.6 và không thực hiện thay đổi trong quá trình cài đặt, quá tình này vẫn có thể thực hiện nhưng nó phức tạp hơn một chút.
Trong các phiên bản khác của Joomla, bao gồm cả 1.7, tên bảng ngẫu nhiên được sử dụng trong suốt quá trình cài đặt để chống lại các loại tấn công này.
9. Xóa bỏ số phiên bản của cài đặt mở rộng
Bạn có thể chỉnh sửa phần mở rộng để nó chỉ hiện thị tên bằng cách sử dụng một công cụ như Dreamweaver. Thực hiện tìm kiếm global và thay thế toàn bộ các thông tin cần thiết trong thư mục chứa các file mở rộng.
Thông thường, các khai thác thường cụ thể hóa cho một phiên bản nào đó của phần mở rộng, đó là lý do tại sao bạn nên xóa bỏ các thông tin về số phiên bản của bất kỳ phần mở rộng nào được cài đặt. Loại bỏ số phiên bản có thể ngăn chặn một cuộc tấn công trước khi nó xảy ra.
10. URL thân thiện cho công cụ tìm kiếm
Sử dụng URL thân thiện với công cụ tìm kiếm. Điều này không chỉ giúp thứ hạng Google của website cải thiện mà còn ngăn chặn hacker khai thác sử dụng kết quả tìm kiếm của Google. Hươn nữa, nó còn tốt cho SEO.
11. Tắt Joomla FTP Layer
Vô hiệu hóa FTP Layer của Joomla và đảm bảo nó không lưu thông tin đăng nhập của bạn.
12. Sử dụng chứng nhận SSL
Sử dụng SSL trên website của bạn cho tất cả các đăng nhập thành viên. Lưu ý là bạn phải có một giấy chứng nhận đúng cấu hình SSL cho tên miền trang web của bạn (chia sẻ chứng nhận SSL sẽ không làm việc).
13. Tắt Register_globals
Tắt Register_globals, nhưng bạn phải biết rằng việc này có thể gây vô hiệu hóa một số kịch bản làm việc của PHP, và có thể ảnh hưởng đến các chương trình khác mà website của bạn đang sử dụng. Để làm điều này, chỉ cần chỉnh sửa file php.ini của website trong thư mục gốc của tên miền.