Tổng hợp các biện pháp
bảo vệ cho website
joomla(I)
Thật là tai hại khi website bị tấn công. Rất khó để biết được họ sẽ tấn công
vào lúc nào, ra sao Những câu hỏi hóc búa ấy thật khó, và đơn giản hơn,
mình tổng hợp những gì lượm nhặt được từ internet, và từ kinh nghiệm bản
thân, hi vọng sẽ giúp đỡ các bạn phần nào
1. Chuyển hóa thư mục administrator.
Đây là phương pháp của website buaxua.vn dành cho joomla 1.5.x. Đối với
website 2.5.x bạn cũng có thể sử dụng, nhưng lưu ý là trước khi tiến hành
hãy sao lưu website của bạn, và tốt nhất là test ngay trên local. Lưu ý: Tạo
ngay một bảng thống kê các biện pháp thực hiện để biết khi chẳng may có
lỗi thì cần phải tiến hành ra sao nhé!
Trong Joomla! phần quản trị (Admin, Back-end) được đặt trong thư mục
administrator, do đó mỗi khi muốn đăng nhấp vào Admin để quản lý phải
truy cập vào địa chỉ "http://domainname/administrator/". Dĩ nhiên là cần
phải có mật khẩu thì mới đăng nhập được, nhưng trong một số trường hợp
người quản trị lại muốn tránh sự tò mò nên muốn ngăn không cho người
khác truy cập vào địa chỉ này.
Có nhiều cách để ngăn chặn việc truy cập này, say đây sẽ là một trong
những cách ngăn chặn truy cập vào thư mục administrator của Joomla!
Tại thư mục gốc của Joomla! hãy tạo thêm một thư mục khác và đặt tên nào
đó để không ai biết được, thí dụ "quantri"
Trong thư mục "quantri", tạo một tập tin đặt tên là index.php có nội dung
như sau:
?php
$admin_cookie_code="1234567890";
setcookie("JoomlaAdminSession",$admin_cookie_code,0,"/");
header("Location: /administrator/index.php");
?>
Kiểm tra xem tại thư mục gốc của Joomla! đã có tập tin .htaccess hay chưa,
nếu chưa có thì hãy tìm và đổi tên tập tin htaccsess.txt thành .htaccess.
Sao chép (Copy) và dán (Paste) dòng mã dưới đây vào cuối tập tin .htaccess.
1.RewriteCond %{REQUEST_URI} ^/administrator
2.RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=1234567890
3.RewriteRule .* - [L,F]
Từ bây giờ, mỗi khi cập vào địa chỉ "http://domainname/administrator/"
sẽ gặp thông báo lỗi. Muốn vào phần quản trị của Joomla! thì phải truy cập
vào địa chỉ mới là "http://domainname/quantri/".
2. Bảo mật cho Thư mục Administrator
Đặt mật khẩu cho thư mục, thực ra làm trong cPanel cũng được (hệ thống
quản trị hosting nào cũng có chức năng này). Tuy nhiên để hiểu được bản
chất của việc này cũng coi như là biết thêm một cách thú vị. Chính vì vậy ta
có thể tự đặt mật khẩu bảo vệ thư mục quản trị Joomla bằng tay, mà tác dụng
vẫn như giống với cách làm trong quản trị hosting. Ok, có 3 bước:
Tạo file .htpasswd với nội dung sau:
tendangnhap:$apr1$t2YOL $Xo98BGSbFrbqqnry5IFPG1
Tạo file .htaccess với nội dung sau:
AuthType Basic
AuthName "Password Required Page"
AuthUserFile "/đường-dẫn-gốc/public_html/administrator/.htpasswd"
Require valid-user
Upload 2 file trên vào trong thư mục Administrator
Done!
Giải thích một chút:
Tạo 2 file .htpasswd và .htaccess bằng trình soạn thảo text bất kỳ,
Save as type: All Files (*.*)
Trong file .htpasswd:
tendangnhap: Tên đăng nhập vào thư mục đặt password
$apr1$t2YOL $Xo98BGSbFrbqqnry5IFPG1: mật khẩu đăng nhập
đã được mã hoá, nội dung mật khẩu trường hợp này là:
matkhaudangnhap
Mật khẩu trong file .htpasswd được mã hoá theo thuật toán DES (Data
Encryption Standard), không dễ bị phá. Tạo một file.htpasswd với
username và password theo ý muốn tại đây.
Trong file .htaccess:
Đường-dẫn-gốc ở đây là đường dẫn gốc của host dẫn tới thư mục đặt
file .htpassword
Muốn biết đường dẫn gốc của host là gì thì xem: http://site-của-
bạn/info.php, mục DOCUMENT_ROOT
Nếu không xem info.php được (host cấm hàm phpinfo) thì phải hỏi
bọn cung cấp hosting thôi, nhưng thường đường dẫn của host Linux
cũng dễ đoán ấy mà.
Tạo mật khẩu cho thư mục bằng trang quản trị hosting (thường là cPanel)
cũng tạo nên 2 file .htpasswd và .htaccess như thế (.htpasswd sẽ đặt ở 1 thư
mục mặc định ngoài thư mục gốc), nhưng khi không dùng nữa nó không xoá
hẳn 2 file đó đi mà chỉ thay đổi nội dung để bỏ mật khẩu thư mục. Như vậy
tự dưng có 2 file rác không cần thiết. Tự làm theo cách này đơn giản chỉ cần
dùng FTP, khi không dùng nữa có thể xoá thẳng tay 2 file đó hoặc đổi tên để
dùng lại khi cần.