Init Content Protector – Plugin bảo vệ nội dung mạnh mẽ, gọn nhẹ cho WordPress

Phiên bản: 1.4 English version

Init Content Protector – Plugin bảo vệ nội dung mạnh mẽ, gọn nhẹ cho WordPress
Init Content Protector là plugin tối ưu để bảo vệ nội dung bài viết khỏi việc sao chép, quét dữ liệu (scraping), và can thiệp từ các công cụ phát triển trình duyệt. Plugin hoạt động hoàn toàn bằng JavaScript thuần, không dùng jQuery, không gây ảnh hưởng đến trải nghiệm đọc của người dùng thật.

Tính năng chính

  • Chặn thao tác sao chép, chọn văn bản, in ấn và mở DevTools bằng JavaScript
  • Mã hóa toàn bộ nội dung bằng AES-256, giải mã phía client qua crypto-js
    • Chọn giữa 2 chế độ giao key: Inline (nhúng thẳng vào HTML, đơn giản) hoặc Enhanced (lấy key qua REST API sau khi trang tải xong, không lộ trong HTML tĩnh, tương thích tốt với cache toàn trang)
    • Nội dung mã hóa được cache theo từng bài viết, tự làm mới khi bạn sửa bài, tránh mã hóa lại mỗi lượt xem
    • Tự động fail-open (hiện nội dung thật) nếu host thiếu OpenSSL/PBKDF2, thay vì làm vỡ trang
  • Ẩn từ khóa cài đặt sẵn bằng cách thay thế bằng span::before, không hiển thị trong HTML gốc
  • Chèn nhiễu ngẫu nhiên (span ẩn) để đánh lạc hướng crawler – chỉ chèn vào văn bản thuần, không bao giờ chèn vào giữa thẻ HTML hay các vùng nhạy cảm như <script>, <select>, <svg>; tỉ lệ chèn có thể tùy chỉnh (1–50%)
  • Tự động nhận diện trang AMP và bỏ qua bảo vệ ở đó, tránh làm hỏng chuẩn AMP
  • Cho phép chọn post type áp dụng bảo vệ, và loại trừ theo vai trò người dùng (role)
  • Hỗ trợ nhập khóa mã hóa riêng cho từng site
  • Cấu hình selector CSS để xác định vùng nội dung, kèm nút Auto-detect tự dò selector phù hợp với theme đang dùng

Bảo vệ nội dung bằng mã hóa

Khi bật chế độ mã hóa, toàn bộ nội dung sẽ được mã hóa AES-256 và giải mã bằng JavaScript trên trình duyệt. Không có nội dung thô nào xuất hiện trong HTML – chỉ có mã hóa và khung hiển thị tạm thời.

Bạn có thể chọn cách giao key giải mã: Inline nhúng thẳng vào HTML (đơn giản, chạy được mọi nơi), hoặc Enhanced lấy key qua REST API sau khi trang đã tải xong – giúp key không nằm trong HTML tĩnh/cache, phù hợp với site dùng cache toàn trang. Dù chọn chế độ nào, đây vẫn là lớp bảo vệ chống crawler/tool xem source đơn giản, không phải giải pháp tuyệt đối chống người cố tình sao chép.

Không ảnh hưởng đến người dùng thật, nhưng cực kỳ hiệu quả để ngăn crawler đơn giản hoặc tool xem source.

Ẩn từ khóa cài đặt sẵn

Nhập danh sách từ khóa (ngăn cách bằng dấu phẩy), plugin sẽ thay chúng bằng <span> vô hình và hiển thị lại bằng CSS ::before. Người dùng thấy bình thường, nhưng HTML sẽ không chứa từ thật.

Chèn nhiễu để chống quét

Plugin có thể tự động chèn các từ ngẫu nhiên ẩn hoàn toàn (dùng display: none) vào giữa nội dung. Từ nhiễu chỉ được chèn vào văn bản thuần túy – không bao giờ chèn vào giữa thẻ HTML hay bên trong các thẻ nhạy cảm cấu trúc – nên không làm vỡ layout hay dropdown, select. Tỉ lệ chèn nhiễu có thể tùy chỉnh từ 1–50% (mặc định 7%). Điều này làm cho crawler khó xử lý văn bản gốc, nhưng không ảnh hưởng người đọc.

Cài đặt nhanh

  1. Tải plugin và giải nén vào thư mục /wp-content/plugins/init-content-protector/
  2. Kích hoạt plugin từ menu Plugins trong admin
  3. Vào Settings → Init Content Protector để cấu hình post type, chế độ bảo vệ, từ khóa, selector CSS và khóa mã hóa

Tương thích và hiệu suất

  • Tương thích WordPress 5.7 trở lên
  • Yêu cầu PHP từ 7.4+
  • Không dùng jQuery – kiến trúc Vanilla JS + REST API hoàn toàn
  • Tự động nhận diện và bỏ qua bảo vệ trên trang AMP
  • Nội dung mã hóa được cache theo bài viết, không tính toán lại mỗi lượt xem
  • Không dùng cơ chế lưu theo IP (rate-limit) để tránh phình database – nếu cần giới hạn tốc độ, nên xử lý ở tầng server/CDN/WAF
  • Không ảnh hưởng đến tốc độ tải trang – chỉ chạy nếu được bật

Bắt đầu ngay

Bạn đang tìm một plugin bảo vệ nội dung đơn giản nhưng mạnh mẽ, không cần viết code, không làm chậm website, và vẫn có khả năng tùy biến cao? Init Content Protector là giải pháp tối ưu để giữ nội dung của bạn an toàn mà không đánh đổi trải nghiệm người dùng.

Đánh giá

5.0/5 (12)

Changelog

  • 1.4 – Sửa lỗi Chèn Nhiễu & Siết chặt Mã hóa
    • Sửa lỗi nghiêm trọng khiến chèn nhiễu (noise injection) có thể chèn giữa thẻ HTML, làm vỡ mã nguồn và vỡ giao diện; giờ chỉ chèn vào text thuần giữa các thẻ, và bỏ qua hoàn toàn <script>, <select>, <svg> và các thẻ nhạy cảm cấu trúc tương tự.
    • Thêm tùy chọn Tỉ lệ Chèn Nhiễu có thể cấu hình (1–50%, mặc định 7%) thay vì cố định trong code.
    • Thêm chế độ giao key Nâng cao (Enhanced) tùy chọn, tách riêng thành includes/rest-api.php: lấy key giải mã qua REST API sau khi trang tải xong thay vì nhúng thẳng vào HTML, tương thích tốt với cache.
    • Cố tình không giới hạn tốc độ theo IP — kiểu này làm phình database còn tệ hơn cả việc scrape mà nó định ngăn chặn.
    • Thêm cache transient cho nội dung đã mã hóa, đồng thời sửa lỗi cache key có thể ghi một dòng database mới ở gần như mỗi lượt xem trang.
    • Thêm cơ chế dự phòng an toàn cho host thiếu OpenSSL/PBKDF2, cùng khả năng tự nhận diện trang AMP.
    • Thêm nút Tự động dò (Auto-detect) cho content selector và cảnh báo console chỉ dành cho admin khi selector cấu hình sai.
    • Sửa lỗi escape bản dịch, dọn code chết, và cập nhật bản dịch .pot/.po/.mo.
  • 1.3 – Tách hoàn toàn Encryption và JS Protection
    • Tách hệ thống encryptionJS content protection thành 2 module riêng biệt (decrypt.jscontent-protector.js).
    • Chia quá trình enqueue thành 2 hook độc lập để tránh phụ thuộc chéo giữa các script.
    • Đổi tên biến localize cho encryption thành InitContentDecryptData để phân tách trách nhiệm rõ ràng.
    • Đảm bảo JS Protection (block copy, right-click, print, DevTools) hoạt động độc lập dù encryption đang tắt.
    • Tăng tính bảo trì bằng cách chỉ load crypto-js.min.js khi bật chế độ mã hóa.
    • Điều chỉnh thứ tự khởi tạo để đảm bảo plugin hoạt động ổn định trên mọi theme và page builder.
  • 1.2 – Role Exclusion & Tách luồng bảo vệ
    • Thêm tùy chọn loại trừ theo user role cho toàn bộ lớp bảo vệ (encryption, JS protection, noise injection, keyword cloaking).
    • Áp dụng bypass role ở cả filterasset enqueue để đồng bộ hành vi giữa frontend và các builder.
    • Refactor luồng bảo vệ để từng module (encryption, JS protection, noise injection) chạy độc lập, tránh phụ thuộc chéo.
    • Cải thiện enqueue script: chỉ load CryptoJS khi encryption được kích hoạt.
    • Tối ưu callback và điều kiện hook để tránh chạy filter không cần thiết cho role bị loại trừ hoặc post type không hỗ trợ.
    • Đảm bảo fallback sạch sẽ khi người dùng bật/tắt nhiều lớp bảo vệ kết hợp.
  • 1.1 – Inline Script Injection
    • Thay đổi cơ chế in script: không còn dùng wp_add_inline_script, thay vào đó in thẳng <script> để đảm bảo luôn hoạt động trên mọi trang.
    • Tận dụng hàm wp_get_inline_script_tag (có từ WordPress 5.7) để xuất script an toàn hơn, kèm nonce/type tự động.
    • Payload mã hóa luôn được in sớm ngay trong nội dung, không phụ thuộc vào enqueue script handle.
    • Thêm sự kiện CustomEvent: init-content-payload-ready để frontend có thể bắt khi payload sẵn sàng.
    • Ngăn chèn trùng script khi bộ lọc nội dung chạy nhiều lần.
    • Nâng yêu cầu tối thiểu: Requires at least WordPress 5.7.
  • 1.0 – Phiên bản đầu tiên của Init Content Protector
    • Giới thiệu plugin bảo vệ nội dung nhẹ, không dùng jQuery, viết hoàn toàn bằng JavaScript thuần.
    • Chặn sao chép, chọn văn bản, in nội dung và mở DevTools bằng kỹ thuật JavaScript.
    • Mã hóa toàn bộ nội dung bài viết bằng AES-256, giải mã phía client với crypto-js.
    • Ẩn từ khóa cài đặt sẵn bằng cách thay thế <span> + ::before, không xuất hiện trong HTML gốc.
    • Chèn nhiễu (noise) ngẫu nhiên bằng các thẻ ẩn display: none để gây nhiễu cho crawler.
    • Cho phép chọn post type cụ thể để áp dụng bảo vệ.
    • Hỗ trợ nhập khóa mã hóa tùy chỉnh cho từng website – không dùng khóa cứng.
    • Cho phép cấu hình selector vùng nội dung để JS targeting chính xác hơn.
    • CSS hiển thị fallback trung tính – hiển thị tốt cả giao diện sáng và tối.
    • Trang cài đặt đầy đủ, có sanitize dữ liệu và lưu option dạng nhóm.
Made with in HCMC.

Bình luận


  • Không có bình luận.

Công cụ trực tuyến

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...