7 cách đơn giản để tăng cường an ninh cho WordPress

wordpress-security

WordPress là một hệ quản trị nội dung (CMS) miễn phí và mạnh mẽ rất dễ sử dụng cho người dùng bình thường và dễ phát triển cho các lập trình viên. WordPress có hàng triệu người dùng cùng với một cộng đồng các nhà phát triển rộng khắp thế giới. Ngoài ra nó còn có một kho giao diện bắt mắt và rất nhiều plugin hữu ích để đáp ứng những yêu cầu đa dạng của người dùng. Và cũng vì sự phổ biến của WordPress, nó đã trở thành “miếng mồi ngon” cho giới hacker. Theo một thống kê của WP WhiteSecurity, có hơn 70% trong số 40.000 trang web phổ biến nhất dùng WordPress rất dễ bị tấn công. Vì thế nếu bạn đang dùng WordPress, bạn cần quan tâm hơn tới việc đảm bảo an toàn cho trang web của mình. Dưới đây là một số cách có thể giúp bạn:

1. Không sử dụng tiền tố mặc định cho tên bảng (table prefix)

Khi cài đặt WordPress, bạn cần tránh sử dụng “wp_” làm tiền tố tên bảng. Điều này sẽ giúp bạn tránh khỏi một vài kiểu tấn công SQL Injection bởi vì kẻ tấn công cần phải biết chính xác tên đầy đủ của các bảng. Nếu dùng tiền tố mặc định thì rất dễ để đoán ra đúng tên bảng.

2. Không dùng “admin” cho tên đăng nhập của người quản lý

Một thói quen tốt khác là không dùng “admin” làm tên đăng nhập cho người quản lý trang web. Đây là tên đăng nhập rất phổ biến và thường được dùng trong các cuộc tấn công brute force. Trong kiểu tấn công này, kẻ tấn công sẽ cố gắng đoán các mật khẩu có thể của tên đăng nhập này. Nếu có đủ thời gian và tài nguyên, sẽ có lúc kẻ tấn công đoán ra mật khẩu của bạn.

3. Sử dụng giao diện (theme) và plugin từ các nguồn tin cậy

Cài đặt giao diện và plugin là việc hầu hết mọi người sẽ làm sau khi cài đặt WordPress. Có khá nhiều giao diện và plugin hữu ích trên khắp Internet. Chúng có thể miễn phí hoặc tính phí. Bạn không nên sử dụng nếu bạn không chắc chúng có an toàn hay không, nhất là đối với các giao diện và plugin không nằm trên thư mục của WordPress. Một vài giao diện và plugin trên Internet có thể chứa backdoor – chương trình gián điệp sẽ cho phép kẻ tấn công lén lút truy cập vào trang web của bạn. Hay ngay cả khi những giao diện và plugin đến thừ thư mục của WordPress cũng có thể chứa những lỗi nghiêm trọng khiến trang web của bạn gặp nguy hiểm sau khi cài đặt. Vì vậy nếu an toàn là mối quan tâm hàng đầu của bạn thì bạn cần chắc chắn là những gì bạn sắp cài là an toàn bằng cách tìm hiểu một chút về nó. Chỉ cần google với tên giao diện hoặc plugin đó cộng với từ khóa “bug”, “vulnerability” để xem có lỗi nào với cái bạn muốn cài hay không. Ngoài ra bạn cũng có thể làm điều này theo cách của hacker bằng cách ghé thăm trang Exploit-DB và tìm kiếm tên của giao diện hoặc plugin đó.

Search for vulnerability from Exploit-DB

Tìm kiếm lỗi cho “total cache” từ Exploit-DB

Search results for "total cache"

Kết quả tìm kiếm cho “total cache”

4. Tắt chức năng chỉnh sửa file và thực thi file PHP

Việc này sẽ giúp bạn trong trường hợp kẻ tấn công bằng cách nào đó có thể đăng nhập vào tài khoản quản lý và cố tình upload backdoor hoặc malware của hắn lên. Khi chức năng chỉnh sửa file của WordPress bị tắt, kẻ tấn công sẽ không thể chỉnh sửa file để chèn mã độc. Và với việc thực thi file PHP cũng bị tắt trong thư mục /wp-content/uploads, sẽ không có cách nào để chạy các file PHP được upload không hợp lệ vào đây.

Để tắt chức năng chỉnh sửa file của WordPress, bạn hãy thêm dòng sau vào file wp-config.php:

Để tắt việc thực thi file PHP trong thư mục /wp-content/uploads, bạn cần thêm file .htaccess vào thư mục /wp-content/uploads với nội dung như sau:

5. Dùng một hệ thống xác thực 2 nhân tố (Two-factor authentication)

Xác thực 2 nhân tố có thể bảo vệ bạn khỏi những phiên đăng nhập trái phép. Thực sự thì đây sẽ là một lớp bảo vệ rất mạnh và hữu ích rất khó để kẻ tấn công vượt qua. Nếu như hắn có được password của bạn, hắn cũng phải có cả thiết bị của bạn mới có thể đăng nhập được. Người viết đề xuất sử dụng plugin Duo Two-Factor Authentication vì nó rất dễ cài đặt. Với plugin này, bạn có thể có nhiều cách để xác thực một phiên đăng nhập thông qua một cuộc gọi, tin nhắn SMS, hoặc dùng ứng dụng trên thiết bị di động… Hiện tại người viết đang sử dụng ứng dụng Duo Mobile trên Blackberry để tạo passcode mỗi khi đăng nhập, với ứng dụng này bạn không cần tới dịch vụ viễn thông nào mà vẫn có thể đăng nhập.

Duo Two-Factor Authentication enabled

Duo Two-Factor Authentication hoạt động khi được bật lên

6. Sử dụng plugin Limit Login Attempts

Plugin này sẽ chặn một IP không cho đăng nhập vào WordPress của bạn sau một số lần đăng nhập thất bại chỉ định trước. Vì vậy nó sẽ giúp hạn chế tấn công brute force, gây khó khăn hơn cho kẻ tấn công. Đây là plugin được dùng mặc định trên WP Engine – một dịch vụ chuyên về hosting cho WordPress.

You're blocked for a while after some failed login attempts

Bạn sẽ bị chặn không được đăng nhập sau một khoảng thời gian nếu đăng nhập sai một số lần

7. Sao lưu và cập nhật WordPress thường xuyên

Bạn sẽ chẳng thể nào biết trước điều gì sẽ xảy ra với trang web của mình, ngay cả khi bạn thực sự cảm thấy an toàn sau khi đã áp dụng những kỹ thuật ở trên. Ngay cả khi như vậy thì bạn cũng không thể chắc chắn rằng WordPress của mình sẽ an toàn mãi mãi. Có thể một ngày nào đó server của bạn sẽ bị xâm nhập, hoặc dịch vụ cung cấp hosting của bạn bị hack và các dữ liệu của bạn bị xóa sạch. Cũng có thể một lỗi nghiêm trong nào đó được phát hiện trong các giao diện hoặc plugin mà bạn đang dùng (hoặc trong chính WordPress) và bạn bị tấn công ngay trước khi bạn biết về lỗi đó. Vì vậy hãy nhớ luôn cập nhật WordPress cùng với các giao diện và plugin thường xuyên. Bạn có thể thự dùng BackupWordpress, một plugin giúp quá trình backup của bạn đơn giản hơn nhiều. Chắc chắn là bạn sẽ không bao giờ hối tiếc về “khoản đầu tư” này đâu : )

* For English version, click here

SSS Full-stack Engineer

Love Silicon Straits and want to know more about our company culture, working environment or job vacancies?
Find out more at careers.siliconstraits.vn.

Silicon Straits
Be Challenged. Be Inspired. Be Different.




Posted by

on November 12, 2013

in

Comments

Follow us for more later

or subscribe with