HocThuatSo.comHọc Thuật Số
Gửi thư
Vận hành tạp chí trên OJS

Bảo mật trang OJS: tài khoản rác, đăng ký ảo và chiếm quyền quản trị

Trang OJS của tạp chí là mục tiêu quen thuộc của bot đăng ký ảo, kẻ chèn mã quảng cáo và kẻ dò mật khẩu quản trị. Các lớp bảo vệ cần có, cách dọn tài khoản rác và dấu hiệu trang đã bị chèn mã.

Bảo mật trang OJS: tài khoản rác, đăng ký ảo và chiếm quyền quản trị

Bảo mật trang OJS dựa trên năm lớp: chặn bot đăng ký bằng mã xác nhận, dọn tài khoản rác định kỳ, áp bản vá bảo mật kịp thời, đặt quyền thư mục chặt, và bảo vệ tài khoản quản trị bằng mật khẩu mạnh cùng giới hạn truy cập. Bỏ một lớp là để ngỏ một cửa.

Hầu hết tạp chí không bị tấn công vì nội dung khoa học, mà vì trang OJS là một trang PHP công khai, có uy tín tên miền trường, dễ bị lợi dụng để đăng liên kết quảng cáo hoặc phát tán mã độc. Bài này nói những việc cụ thể mà toà soạn và người kỹ thuật cùng làm được, không cần chuyên gia an ninh mạng.

Ba kiểu sự cố hay gặp

Nhận diện đúng kiểu sự cố giúp chọn đúng cách xử lý. Ba kiểu dưới đây chiếm phần lớn các trường hợp ở tạp chí trường.

Kiểu sự cốDấu hiệuHậu quả
Đăng ký ảo hàng loạtHàng trăm tài khoản mới với tên vô nghĩa, thư rác, phần tiểu sử chứa liên kết quảng cáoTrang hồ sơ công khai thành nơi đặt liên kết rác, tên miền bị công cụ tìm kiếm đánh giá xấu
Chèn mã vào trangLiên kết lạ ở chân trang, trang chuyển hướng sang trang khác khi vào từ công cụ tìm kiếm, tệp PHP lạ trong thư mục publicNgười đọc bị dẫn tới trang độc hại, trình duyệt cảnh báo trang nguy hiểm
Chiếm quyền quản trịTài khoản quản trị lạ, cấu hình bị sửa, plugin lạ được càiKẻ tấn công kiểm soát toàn bộ, kể cả bản thảo chưa công bố

Lớp 1: chặn bot đăng ký

Bật mã xác nhận

OJS hỗ trợ mã xác nhận (captcha) cho biểu mẫu đăng ký, cấu hình trong mục captcha của config.inc.php, thường dùng reCAPTCHA của Google với khoá lấy từ bảng điều khiển của dịch vụ đó. Một số bản mới có thêm lựa chọn khác; đọc chú thích trong tệp cấu hình của bản bạn đang dùng.

Cân nhắc tắt tự đăng ký

Nếu tạp chí chỉ nhận bài từ một nhóm tác giả hẹp, có thể tắt tuỳ chọn cho khách tự đăng ký tài khoản trong phần cài đặt người dùng, và để toà soạn tạo tài khoản khi cần. Tạp chí mở cho mọi tác giả thì giữ đăng ký nhưng bắt buộc mã xác nhận và xác thực thư.

Bắt xác thực thư

Bật yêu cầu người đăng ký xác nhận địa chỉ thư trước khi tài khoản hoạt động. Bot dùng địa chỉ giả sẽ để lại tài khoản chưa xác thực, dễ lọc và xoá hàng loạt.

Lớp 2: dọn tài khoản rác

Khi đã có hàng trăm tài khoản rác, dọn theo thứ tự sau để không xoá nhầm người thật.

  1. Sao lưu CSDL trước khi xoá bất cứ thứ gì.
  2. Lọc tài khoản không có vai trò nào ngoài người đọc, chưa từng nộp bài, chưa từng nhận lời mời phản biện, chưa xác thực thư.
  3. Trong nhóm đó, đánh dấu những tài khoản có tên vô nghĩa, địa chỉ thư từ tên miền dùng một lần, tiểu sử chứa liên kết.
  4. Xoá hoặc vô hiệu các tài khoản đã đánh dấu. OJS có thao tác gộp tài khoản trong giao diện quản lý người dùng và công cụ dòng lệnh gộp người dùng; xoá trực tiếp trong CSDL chỉ làm khi hiểu rõ các bảng liên quan.
  5. Sau khi dọn, bật mã xác nhận và xác thực thư để không phải dọn lại.

Tuyệt đối không xoá tài khoản từng là tác giả hoặc phản biện, dù trông đáng ngờ. Lịch sử biên tập gắn với các tài khoản đó.

Một tình huống hay gặp: tạp chí phát hiện vài nghìn tài khoản mới trong một tháng, phần lớn có tiểu sử chứa liên kết bán hàng. Trang hồ sơ công khai của các tài khoản này đã được công cụ tìm kiếm thu thập. Ngoài việc xoá tài khoản, cần kiểm lại sau vài tuần xem các trang đó đã biến khỏi kết quả tìm kiếm chưa, và nếu cần thì dùng công cụ quản trị trang của công cụ tìm kiếm để yêu cầu gỡ nhanh các đường dẫn đã chết.

Lớp 3 và 4: bản vá và quyền thư mục

Theo dõi bản vá của PKP. PKP công bố bản sửa lỗi và cảnh báo bảo mật cho các dòng phiên bản đang hỗ trợ. Đăng ký nhận tin từ PKP và đặt lịch áp bản vá trong cùng dòng phiên bản càng sớm càng tốt, thử trên bản sao nếu có thay đổi lớn.

Không chạy dòng phiên bản đã hết hỗ trợ. Bản cũ hết hỗ trợ không còn được vá. Lỗ hổng công bố công khai sẽ bị khai thác hàng loạt bằng công cụ tự động.

Thư mục tệp ngoài web. files_dir phải nằm ngoài thư mục web. Đây là điều kiện cơ bản để bản thảo không bị tải trộm.

Quyền ghi tối thiểu. Người dùng mà máy chủ web chạy dưới tên chỉ cần quyền ghi vào files_dir, thư mục public và thư mục bộ nhớ đệm. Mã nguồn và config.inc.php nên ở chế độ chỉ đọc với tiến trình web, để kẻ xâm nhập không sửa được mã.

Chặn thực thi PHP trong thư mục tải lên. Cấu hình máy chủ web không chạy tệp PHP trong thư mục public. Nếu có kẻ tải được tệp lên, tệp đó cũng không chạy.

Lớp 5: bảo vệ tài khoản quản trị

Mật khẩu và số lượng

Chỉ một hai người giữ quyền quản trị site. Mật khẩu dài, không dùng lại ở nơi khác, lưu trong trình quản lý mật khẩu của cơ quan. Không dùng chung một tài khoản quản trị cho nhiều người.

Xác thực mạnh hơn

Lõi OJS ở nhiều phiên bản chưa có sẵn xác thực hai lớp. Kiểm bản bạn dùng hoặc plugin có hỗ trợ không. Nếu không, có thể bảo vệ ở tầng máy chủ: giới hạn trang quản trị chỉ truy cập được từ mạng của trường hoặc qua mạng riêng ảo.

Rà soát định kỳ

Mỗi quý mở danh sách người có vai trò quản trị site và quản lý tạp chí, đối chiếu với danh sách nhân sự. Người đã nghỉ phải bị gỡ quyền ngay khi nghỉ.

Dấu hiệu trang đã bị chèn mã và việc làm ngay

Nếu thấy một trong các dấu hiệu dưới đây, coi như trang đã bị xâm nhập cho đến khi chứng minh được điều ngược lại.

Dấu hiệuKiểm thế nàoViệc làm ngay
Kết quả tìm kiếm hiện tiêu đề lạ dưới tên miền tạp chíTìm theo tên miền trên công cụ tìm kiếmBáo kỹ thuật, kiểm tệp và CSDL
Vào từ công cụ tìm kiếm bị chuyển sang trang khácBấm vào kết quả tìm kiếm, không gõ thẳng địa chỉKiểm tệp cấu hình máy chủ web và mã nguồn
Tệp PHP lạ, ngày sửa gần đây trong thư mục mã nguồn hoặc publicSo danh sách tệp với bản cài gốc cùng phiên bảnCô lập trang, giữ bản sao để điều tra
Tài khoản quản trị không ai nhậnXem danh sách vai trò quản trịVô hiệu tài khoản, đổi mọi mật khẩu
Trình duyệt cảnh báo trang nguy hiểmMở trang trên nhiều trình duyệtĐưa trang về chế độ bảo trì, làm sạch rồi yêu cầu xét lại

Làm sạch đúng cách thường là dựng lại mã nguồn từ bản gốc của PKP, chỉ giữ lại CSDL đã kiểm và thư mục tệp, đổi mọi mật khẩu kể cả mật khẩu CSDL và máy chủ, rồi áp bản vá mới nhất. Xoá vài tệp lạ rồi để nguyên phần còn lại thường không đủ, vì kẻ xâm nhập hay để lại cửa sau.

Câu hỏi thường gặp

Có nên tắt hẳn chức năng đăng ký tài khoản trên OJS không?

Chỉ khi tạp chí nhận bài từ nhóm tác giả hẹp. Tạp chí mở cho mọi tác giả nên giữ đăng ký, nhưng bắt buộc mã xác nhận và xác thực thư để chặn bot.

Xoá tài khoản rác có làm mất dữ liệu bài không?

Không, nếu chỉ xoá tài khoản chưa từng nộp bài hay phản biện. Luôn sao lưu CSDL trước và loại trừ mọi tài khoản có lịch sử biên tập.

OJS có xác thực hai lớp không?

Nhiều phiên bản chưa có sẵn trong lõi. Kiểm bản bạn dùng và các plugin hiện có. Nếu không có, giới hạn trang quản trị theo mạng của trường là cách bảo vệ thay thế hiệu quả.

Làm sao biết có bản vá bảo mật mới cho OJS?

Theo dõi kênh thông báo và diễn đàn hỗ trợ của PKP, nơi công bố bản sửa lỗi và cảnh báo bảo mật. Nên có một người được giao kiểm hằng tháng.

Trang bị chèn liên kết quảng cáo thì xoá liên kết là đủ chưa?

Chưa. Liên kết là triệu chứng; kẻ xâm nhập thường để lại cửa sau. Cần dựng lại mã nguồn từ bản gốc, đổi mọi mật khẩu và áp bản vá mới nhất.

Ai trong toà soạn nên chịu trách nhiệm bảo mật?

Một người kỹ thuật chịu trách nhiệm máy chủ và bản vá, một người biên tập giữ quyền quản lý tạp chí và rà danh sách người dùng. Hai người cần biết cách liên lạc với nhau khi có sự cố.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

🧭
Bạn đang ở chặng nào của đường học vị?
Nhập chỗ bạn đang đứng và đích bạn nhắm — công cụ trả về số năm, chi phí và việc phải làm từng chặng.
Xem lộ trình của tôi →
Miễn phí, không cần tài khoản. Xem tất cả công cụ

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
[email protected]