Việc đầu tiên bạn cần làm đó là luôn cập nhật các phiên bản mới nhất của NukeViet việc này là hoàn toàn miễn phí và giúp chúng ta sửa chữa các lỗi ở phiên bản cũ, cập nhật thêm các tính năng mới cho hệ thống và các module.
Một chú ý trong việc phát triển thêm tính năng của site, bạn không nên hiển thị các thông tin của phiên bản NukeViet bạn đang sử dụng (chỉ hiển thị cho người điều hành tối cao của site xem).
Lưu ý: Với các site đang chạy trong môi trường sản phẩm, bạn không nên sử dụng các phiên bản beta
Hệ thống NukeViet là hệ thống rất mạnh về việc phân quyền quản trị site, nếu một cách hợp lý bạn có thể ngăn ngừa các nguy cơ “tấn công nội bộ” hoặc “tấn công vào các tài khoản quản trị”. Sau đây là một số lưu ý:
Hãy sử dụng các module và block một cách hạn chế, có nghĩa là chỉ cài những module và block nào thật cần thiết, sẽ trách được các lỗi (bug) tiềm ẩn trong bản thân module và block.
Nếu module nào không sử dụng, bạn cần tiến hành xóa trong công cụ quản trị của NukeViet.
Cách này nhằm tránh những người có chủ tâm không tốt khai thác thông tin về site của bạn, rồi dùng thông tin đó để dò lỗi và khai thác. Rất nhiều nhà cung câp dịch vụ Hosting hay Webmaster để ngầm định chế độ cho phép xem danh sách các file của thư mục. Tuy nhiên, bạn nên loại bỏ khả năng xem nội dung thư mục bằng cách tạo file file index.html trong tất cả các thư mục. Ngoài ra bạn cần thêm file .htaccess có nội dung: “deny from all” cho tất cả các thư mục không cho phép truy cập trực tiếp (chú ý khi dùng file .htaccess này tất cả các file trong thư mục này sẽ không truy cập trực tiếp được). Nếu là người phát triển module bạn nên lưu ý không cho truy cập trực tiếp các thư mục sau của mỗi module:
modules/about/admin modules/about/blocks modules/about/funcs modules/about/language
(Chú ý cách bảo vệ thư mục bằng file .htaccess chỉ áp dụng được cho hosting dùng máy chủ web Apache, các máy chủ dùng IIS sẽ không được bảo vệ, vì vậy nếu có thể, bạn nên chuyển sang dùng hệ điều hành linux dùng máy chủ web Apache).
Ngoài ra bạn nên chặn các loại bots dò tới các thư mục nhạy cảm của bạn bằng cách chèn code sau vào file robots.txt trên thư mục root:
Disallow: /dir_name/ Disallow: /file_name.ext
Chmod thư mục public_html
thành 710 và các thư mục còn lại thành 701, việc này sẽ giúp bạn bảo vệ được cấu trúc website của mình. Các thư mục cache, data , files, logs, sess, tmp, uploads
(và tất cả các thư mục con của chúng) cần chmod 755 (một số host cần chmod 777) để hệ thống có thể ghi file.
Chmod tập tin config.php
thành 400, điều này chống hacker local và view source của tập tin này.
Nếu có điều kiện, bạn nên sử dụng VPS cho website, Nếu có thêm IP tĩnh tại nơi quản lý cần cấu hình tường lửa chỉ cho truy cập 1 số dịch vụ sau từ IP đó:
Bạn nên sử dụng https cho toàn bộ website
Thường thì chúng ta vẫn đặt tên tài khoản quản trị là admin hoặc administrator. Như vậy thay vì phải dò cả tên đăng nhập và mật khẩu thì giờ đây hacker chỉ cần đoán được mật khẩu là có thể vào được site của bạn. Do đó bạn nên đổi tên tài khoản admin thành 1 tên riêng nào đó chỉ có site bạn sử dụng.
Kích hoạt chức năng xác thực hai bước
Ngoài ra bạn có thể bảo vệ khu vực admin bằng các cách sau:
Bạn hãy đổi tên thư mục admin thành 1 cái tên nào đó mà chỉ bạn và các thành viên ban quản trị site được biết ví dụ adm2457 Khi đó bạn cần sửa file includes/constants.php
, tìm đến dòng
//Ten thu muc admin define( "NV_ADMINDIR", "admin" );
NukeViet cung cấp 3 loại Mặc định, CoolPHP Captcha và reCAPTCHA.
Nếu dùng trên mạng nội bộ hoặc localhost nên dùng, CoolPHP Captcha cần thiết lập các thông số:
Nếu dùng trên hosting nên chọn reCAPTCHA: cần thiết lập 3 thông số: Site key, Secret key, Kiểu xác nhận. Để lấy Site key, Secret key truy cập vào https://www.google.com/recaptcha/admin
Nếu Bạn có IP tĩnh, hoặc chỉ truy cập site trong giải IP có định, Bạn có thể cấu hình chức năng này trong phần: Tài khoản → Quản trị → Cấu hình site.
Để thực hiện việc này bạn cần thêm địa chỉ IP hoặc dải IP truy cập vào admin vào phần dưới
Sau đó Sửa phần cấu hình Kiểm tra IP khi truy cập khu vực admin và lưu lại.
Nếu hosting của bạn có hỗ trợ chức năng bảo vệ thư mục bằng tài khoản và mật khẩu, bạn nên dùng chức năng này để bảo vệ thư mục admin. Nếu hosting của bạn không hỗ trợ bạn có thể dùng chức năng Kiểm tra tường lửa cho khu vực admin trong phần cấu hình của menu quản trị.
File config.php là file chứa tất cả những gì quan trọng nhất, vì vậy việc không view được source của file này rất quan trọng. đó đó bạn nên đổi tên file di chuyển đến 1 vị trí người khác khó đoán ra. Sau khi đổi tên và đổi đường dẫn file config.php
, các bạn tìm file includes/constants.php
Tìm đến dòng:
//Ten file config define( "NV_CONFIG_FILENAME", "config.php" );
Edit lại cho phù hợp với đường dẫn và tên file config.php
Ví dụ: trên hosting các file được đặt trong thư mục /public_html/
, bạn có thể đổi tên file config.php
thành cfg.nkv
và di chuyển nó ra ngoài thư mục /public_htm/
(khi đó file cfg.nkv
nằm ngang hàng với thư mục /public_html/
) và dòng lệnh:
define( "NV_CONFIG_FILENAME", "config.php" );
sẽ được sửa thành:
define( "NV_CONFIG_FILENAME", "../cfg.nkv" );
Các thư mục sau bạn nên đổi tên: cache, data , files, logs, sess, tmp sau khi đổi tên các thư mục này bạn cần khai báo lại các thông số này vào file includes/constants.php
Để hóa các file php bạn có thể chọn IonCube và ZendGuard 5. Việc mã hóa file làm cho hacker khó khăn hơn khi muốn đọc nội dung các file này. Các file bạn cần thiết mã hoá là config.php
và includes/constants.php
. Nếu có điều kiện bạn có thể mã hóa tất cả các file *.php của site.
Việc upload ảnh, upload file lên server ẩn chứa nguy cơ tiềm ẩn về việc upload shell lên hệ thống, do đó cần hạn chế tối đa việc cho phép thành viên, khách thực hiện chức năng upload file lên server. Nếu cần thiết phải cho phép upload ngoài site, người quản trị cần cấu hình Upload với chế độ kiểm tra file tải lên từ Mạnh đến Yếu tùy vào khả năng của server, việc này khuyến cáo cũng nên thực hiện với các admin.
Để thực hiện cấu hình này cần đăng nhập admin tối cao, di chuyển vào khu vực Quản lý file ⇒ Cấu hình Upload ⇒ Kiểu kiểm tra file tải lên chọn từ Mạnh ⇒ Yếu cho đến khi việc Upload diễn ra bình thường.
Lưu ý:
includes/ini/mime.ini
mime_content_type
Bạn hãy lên lịch định kỳ hàng tuần thậm chí là hàng ngày thực hiện việc sao lưu website (bao gồm cơ sở dữ liệu site và dữ liệu dạng file có trên hệ thống).
Hàng tháng hãy thực hiện một bản sao lưu đầy đủ, toàn diện site (backup full).
Hãy giữ các bản sao lưu ở đâu đó an toàn (tất nhiên không phải trên server chạy web của bạn rồi).
NukeViet đã có sẵn chức năng sao lưu cơ sở dữ liệu (database) và chức năng này mặc định được kích hoạt hàng ngày hệ thống sẽ tự động sao lưu và lưu trữ trên site, bạn hãy tải nó về. Cơ sở dữ liệu sao lưu sẽ được lưu trữ trên site tối đa 30 ngày (tương đương 30 file sao lưu) trước khi nó tự động bị xóa đi.
NukeViet cũng có chức năng giúp bạn sao lưu cơ sở dữ liệu thủ công (sao lưu tức thời) để bạn sử dụng bất cứ lúc nào.
Ngoài cơ sở dữ liệu, NukeViet còn lưu trên website các dữ liệu dạng file khác, bao gồm tập tin được upload lên, tập tin cấu hình, các dữ liệu mà hệ thống bóc tách được và lưu trực dạng file thay cho dạng cơ sở dữ liệu MySQL… bạn cần tải các dữ liệu này về thông qua trình FTP.
Tải toàn bộ dữ liệu trên server về, bao gồm cả code và các dữ liệu tạm trên site, bạn sẽ có một bản sao lưu đầy đủ nhất. Bản sau lưu đầy đủ này đặc biệt hữu ích khi site bạn bị hack, có thể nó chứa thông tin giúp dò ra dấu vết của hacker.
Tác giả bài viết: Trần Minh Tuấn