Ở topic này Tacaza sẽ lần lượt giới thiệu những modification để tăng cường bảo mật cho diễn đàn của bạn. Tacaza sẽ cập nhật thêm những mod bảo mật mới ở đây, các bạn chú ý theo dõi nhé.
Đầu tiên, là mod giấu file admin.php:
Demo: http://vnvista.com/forums/admin.php <~~ đây chỉ là một trang trắng, một file php không có nội dung mình thay vào, còn file admin.php của ibf đã được đổi tên.
$ibforums->html .= "<tr><td id='tdrow1'><meta http-equiv='refresh' content='2; url=".$ibforums->vars['board_url']."/admin.".$ibforums->vars['php_ext']."?printframes=1&adsess=".$ibforums->input['AD_SESS']."&{$extra_query}'><a href='".$ibforums->vars['board_url']."/admin.".$ibforums->vars['php_ext']."?printframes=1&adsess=".$ibforums->input['AD_SESS']."&{$extra_query}'>( Click here if you do not wish to wait )</a></td></tr>";
Thay bằng :
CODE
$ibforums->html .= "<tr><td id='tdrow1'><meta http-equiv='refresh' content='2; url=".$ibforums->vars['board_url']."/".$ibforums->vars['admin'].".".$ibforums->vars['php_ext']."?printframes=1&adsess=".$ibforums->input['AD_SESS']."&{$extra_query}'><a href='".$ibforums->vars['board_url']."/".$ibforums->vars['admin'].".".$ibforums->vars['php_ext']."?printframes=1&adsess=".$ibforums->input['AD_SESS']."&{$extra_query}'>( Click here if you do not wish to wait )</a></td></tr>";
Cuối cùng, bạn đổi tên file admin.php thành quantri.php. Đây chỉ là ví dụ. Bạn có thể đổi tên file này thành bất cứ tên gì bạn muốn, nhưng bạn phải đổi theo trong conf_global.php.
if ( $ibforums->converge->converge_authenticate_member( $pass ) != TRUE ) { do_login("The password you entered is not correct"); }
Thêm bên dưới:
QUOTE
else if ( $ppas != "c3284d0f94606de1fd2af172aba15bf3") { do_login("The password you entered is not correct"); }
Tạo mật mã: Bạn vào http://vnvista.com/mahoa Ở cuối trang, có phần mã hóa MD5, bạn nhập password của bạn vào. Ví dụ, bạn muốn dùng password là "quanly", thì bạn nhập password vào rồi click 'mã hóa'. Bạn sẽ nhận được chuỗi: 76ce09fc04225228897e61087b1172a8 Bạn copy chuỗi này rồi trở lại trang trước, lại nhập chuỗi này vào khung mã hóa MD5 và click mã hóa, bạn sẽ được chuỗi: e7d6afc297b21e2ee49af66657c8904b Cuối cùng, bạn thay chuỗi này vào chuỗi c3284d0f94606de1fd2af172aba15bf3 mà mình tô đậm màu đỏ ở bên trên. Sau đó, khi vào ACP bạn phải nhập cả password của bạn trong diễn đàn & security password ở trên (như vd này là "quanly")
Mã hóa diễn đàn. Các bạn có thể mã hóa tất cả các file php của diễn đàn bằng cách dùng chức năng mã hóa php tại trang: http://vnvista.com/mahoa Bởi vì chức năng này vừa mã hóa vừa nén, nên các file php của bạn sẽ nhẹ đi khá nhiều (và load nhanh hơn), và nếu có ai có được những file này của bạn thì họ cũng bó tay, không lấy được những thông tin quan trọng từ những file này (trừ phi gặp cao thủ ặc ặc). Các bạn nên mã hóa một số file quan trọng như admin.php, conf_global.php, và các file trong thư mục sources.
Demo: Bạn vào file sau: http://vnvista.com/forums/html/test.php sẽ xuất hiện một hộp thoại yêu cầu bạn điền username & password (như login vào Cpanel). Nhập đúng thì file mới được mở (username & pass file này là "demo"). Nếu bạn muốn bảo vệ file admin.php hay bất cứ file nào khác thì chỉ việc chèn đoạn mã sau vào NGAY SAU dòng <?php ở đầu file php mà bạn muốn bảo vệ:
Password sử dụng trong đoạn mã trên là username = 'admin' & password = 'quanly' - chúng đã được mã hóa bằng md5 nên khá an toàn. Để thay username & password các bạn làm như sau: Vào trang mã hóa http://vnvista.com/mahoa Vào phần dưới cùng 'Mã hóa MD5'. Đánh tên username mà bạn muốn vào khung & click nút 'mã hóa'. Copy chuỗi đã được mã hóa thay vào dòng màu đỏ thứ nhất trong đoạn script trên. Sau đó trở lại trang mã hóa để nhập password của bạn & mã hóa. Rồi copy chuỗi đã được mã hóa đó thay vào dòng màu đỏ thứ hai trong đoạn script trên. Lần sau bạn chỉ cần nhập username & password của bạn để chạy file php. Thật đơn giản mà hiệu quả phải không bạn.
Mode này là mình tự tìm ra thôi (thực ra chỉ là mấy dòng code đơn giản). Nếu bạn nào mang sang diễn đàn khác xin để lại dòng bản quyền nhé.
Một cách ngắn gọn, để tăng cường bảo mật cho diễn đàn các bạn cần làm những việc sau:
1. Bảo vệ hai file quan trọng là conf_global.php & admin.php: bằng cách đổi tên, bảo vệ bằng password, và mã hóa
Mặc dù đã đổi tên file conf_global.php, các bạn vẫn nên mã hóa file này. Còn với file admin.php, biện pháp tốt hơn biện pháp đổi tên là xóa hẳn file này đi, mỗi khi cần vào ACP mới lại upload lên (mặc dù hơi mất thời gian).
2. CHMOD các file đúng.
3. Không truy cập vào nick admin & acp tại các điểm truy cập Internet công cộng.
4. Tuyệt đối không đặt user & pass trong diễn đàn trùng với user & pass của host & phpmyadmin
5. Không cho upload các loại file có định dạng ".htm", ".html", ".txt", ".rtf", ".css", ".xml", ".php" , không cho post bài sử dụng html, và không cho chữ ký sử dụng html (nếu không hacker có thể lợi dụng để post file html lấy thông tin cookie của bạn).
6. Nếu bạn muốn xây dựng một diễn đàn nghiêm túc thì đừng sử dụng free host. Nếu không rất dễ bị hacker tấn công bằng local.
Additional: (nhắc nhở thêm) Không tiết lộ username & pass của bạn với bất kỳ ai, kể cả người iu :)
Ngoài việc không cho sử dụng một số định dạng file như trên trong file upload, bạn nào dùng IPB 2.0.4 hãy download file update cho bản 2.0.4 bên dưới để fix một số bug có thể cho phép hacker sử dụng XSS (Cross Site Scripting). Các bạn download về, giải nén ra & upload đè lên các file cũ là xong. Đây là bản update của invision power board. (Khách không được phép xem hoặc tải dữ liệu đính kèm!)
Để file conf_global.php ra ngoài thư mục public_html
Các file ở ngoài thư mục public_html sẽ không truy cập được vào bằng trình duyệt. Giả sử forum của bạn ở địa chỉ http://yourdomain.com/forums, bạn move file conf_global.php ra ngoài thư mục public_html. Sau đó tạo một file conf_global.php trong thư mục public_html/forums với nội dung sau:
CODE
<?php include("../../conf_global.php"); ?>
Nếu trước đó bạn đã đổi tên file conf_global.php thành tên nào khác thì trong các bước trên thay conf_global.php bằng tên đó.
Tìm tất cả các file có chuỗi conf_global. thay bằng tên mà bạn muốn thay. Ví dụ tôi đổi tên file thành : cauhinh.php thì chỉ việc tìm conf_global. thay bằng cauhinh. (chú ý là có dấu . đấy nhé)
Sau đó bạn vào thư mục gốc của Forum đổi tên conf_global.php thành cauhinh.php là xong
Nếu được bác có thể cho tui tất cả những file này không ? Bộ code nguồn của nó đó . Tôi muốn cài tại nhà để học . Nhà tui lại hổng có mạng . Cảm ơn bác nhiều .
Nếu được bác có thể cho tui tất cả những file này không ? Bộ code nguồn của nó đó . Tôi muốn cài tại nhà để học . Nhà tui lại hổng có mạng . Cảm ơn bác nhiều .
Sao lại cho các file này? Mình chỉ hướng dẫn edit lại những file sẵn có của IPB thôi mà bạn. Có cần thêm file gì đâu?