Tuesday, June 16, 2009

Tăng cường tính bảo mật cho Wordpress


1. Về chmod các thư mục và file

Không bao giờ chmod các thư mục thành 777, nếu cần thiết chmod thành 777 thì làm xong phải quay lại setting cũ ngay. Chmod là set quyền cho 3 đối tượng: owner (người tạo ra file đó, cũng chính là user của host), group (những user nằm cùng trong shared host của bạn đó), others (là tất cả các cái còn lại như trình duyệt web, …)

Các quyền được set theo thứ tự bao gồm: read (quyền đọc), write(quyền ghi), execute (quyền thực thi). Khi enable một quyền nào đó thì nó sẽ có giá trị 1. Quyền cho mỗi user sẽ là một số nhị phân gồm 3 bit theo thứ tự: đọc, ghi, thực thi. Ví dụ, owner có quyền đọc, ghi, thực thi giá trị sẽ bằng: 111, giá trị thập phân = 7.

Như vậy, chỉ đọc và thực thi sẽ có quyền là 101 = 5, chỉ đọc thôi sẽ có quyền là 100 = 4.

Tổng hợp lại, ta có quyền cho 1 file hoặc 1 thư mục có dạng: XXX với X là quyền cho mỗi nhóm: owner, group, others.

Chú ý khi chmod: Đừng bao giờ cho group cái quyền gì cả, như thế sẽ tránh được sự nhòm ngó từ các user khác, cũng như phòng chống tấn công gọi là: local attack. Cái này xảy ra khi user trong cùng 1 host cài đặt shell script trên host của họ, để thực thi các lệnh như xóa, … đối với các thư mục và host của mình.

Khi chmod 1 cái nào đó thành 777 tức là tự giết mình, ai cũng có thể ghi cái gì đó vào thư mục hoặc file này. Nếu có chmod để upload thì nên học thêm cách đặt script khác để tránh ng dùng upload shell script lên. Cái này bàn sau.

Nói dài dòng, giờ quay lại cái host cho Wordpress:

- Chmod các file wp-config.php và .htaccess thành 404 (chỉ cho phép đọc thôi) để nhỡ mà server hoặc wordpress có lỗi gì đó thì các thông tin của database không bị lộ, và không bị mất hay đánh cắp dữ liệu quan trọng.

- Cố gắng chmod cái thư mục chứa wordpress thành 101, nếu mà không được thì chmod thành 701. Như thế thằng nào vào ngó thì cũng chả thấy gì cả =)) . Khi muốn chỉnh sửa hoặc ghi vào thư mục / thì chmod lại, sửa xong lại chmod như cũ là được.

2. Về database

Khi tạo database bao giờ cũng có cái bảng set quyền cho user như sau:

hb_003

Đừng chọn quyền Drop cho user của database. Cái này có tác dụng là nếu thông tin của database bị lộ thì cũng chỉ bị đọc thôi, chứ không sợ bị phá đâu vì không có quyền drop mà. Nên yên tâm một phần :)

Cái tiếp nữa là prefix_ của database cho wordpress trong file wp_config.php mặc định là wp_ nên các table sẽ có dạng wp_xxxx gì đó. Khi mới lập wordpress thì nên thay đổi cái này thành bất cứ cái gì cũng được, sẽ tăng tính bảo mật của blog của bạn.

3. Bảo mật thư mục

Mấy ông bảo mật kinh khủng thì có mà không tài nào có thể xác định được thư mục đặt blog nằm ở chỗ nào cả. Việc này tránh được tấn công local, khi browse vào sẽ chả biết nằm ở đâu cả, dẫn đến tốn thời gian mò mẫm. Vì thế, khi assign cái domain vào host thì nên vứt vào subfoder với càng nhiều tầng càng tốt, riêng với thằng bluehost nó chỉ cho 1 tầng thôi :) .

Ví dụ: assign cái domain.com vào thư mục: public_html/a/d/c/g/e chẳng hạn, có thể thay chữ cái đó thành bất cứ cái gì cũng được. Và nhớ chmod các thư mục mẹ thành 101 cho tuyệt đối an toàn, và đừng quyên đặt file index.php hoặc index.html vào mỗi thư mục đó.

Nói về đặt index.html mới nhớ là mặc định khi cài Wordpress thì các thư mục này rất dễ dàng có thể xem được mà k ngại gì cả: /wp-admin/includes, /wp-contents/themes, /wp-admin/plugins . Như vậy ai mà browse cái này cũng biết được bạn dùng plugin gì và từ đó dựa vào lỗ hổng của plugin để tấn công thôi. Do đó, đặt file index.php vào các thư mục này cho chắc ăn.

Review plugin GD Press Tools cho blog Wordpress ở mục security bạn có thể tự động chèn file index.php đê forward sang thư mục chủ.

Báo cáo error

Cái này là gì ? Là báo cáo khi một plugins hay là một cái gì đó bị sai, như là không thể đọc được một file .php nào đó chẳng hạn, thì nó sẽ hiện lên đường dẫn của file đó trong host. Như vậy, sẽ biết chính xác được host của bạn nằm ở thư mục gì, nằm ở box nào trong server (vì shared server nó chia theo box).

Việc này được thực hiện bằng cách chỉnh sửa file php.ini hay là cấu hình tham số của php. Nhưng cách nhanh nhất và hiệu quả là bạn sửa trong wp-config.php. Thêm các dòng sau vào trong file này:

@ini_set('log_errors','On');

@ini_set('display_errors','Off');

@ini_set('error_log','/home/example.com/logs/php_error.log');

/* That's all, stop editing! Happy blogging. */

Xem thêm về các cấu hình nâng cao khác quan trọng trong wp-config.php tại đây

4. User admin

Thông thường khi tạo wordpress thì user admin có toàn quyền sẽ có ID = 1 với tên là admin. Như vậy, khi tấn công vào host sẽ chủ yếu tìm xem và khai thác user này, vì nếu có tài khoản của admin thì còn gì bằng nữa.

Vì thế, hãy đổi thành bất cứ cái gì cũng được tùy theo ý của bạn như Mike chẳng hạn, hoặc tên người yêu cũng được =)) . Sau đó, nhớ là đổi display name ở trong profile thành tên bạn muốn hiển thị, nên khác với tên đăng nhập, như thế sẽ tung hỏa mù hehe.

Sau đó, tạo ra một user có tên là admin, với quyền thấp nhất, để cho bọn nó nếu có được user, pass cũng chẳng làm gì =))

Review plugin GD Press Tools cho blog Wordpress ở mục security bạn có thể thay đổi tài khoản admin theo ý của bạn, rất tiện lợi, không phải chỉnh sửa database.

Nếu sửa database thì vào database và xem user có id=1 và sửa tên username thành cái khác là được.

Không biết còn gì viết nữa không, sẽ bổ sung tiếp sau. Mong ý kiến đóng góp của bạn đang dùng Wordpress.

Tăng cường tính bảo mật cho WordpressSocialTwist Tell-a-Friend


Đang tải xin vui lòng chờ...

0 comments:

Post a Comment

[▼/▲] Chèn biểu tượng vui danghienIT

/

Chuyên mục

Tool box

Liên kết

Trao đổi Liên kết
Loading Logos...
Posts: 3041
Comments: 415
Bookmark and Share
 

Copyright 2009 All Rights Reserved iupro theme by Dang Quang Hien