Làm rối VM
Làm rối VM biến các hàm JavaScript của bạn thành bytecode tùy chỉnh chạy trên một máy ảo được nhúng trong đầu ra, nhờ đó logic được bảo vệ không còn được phát hành dưới dạng JavaScript dễ đọc.
Bảo vệ VM áp dụng cho các hàm đủ điều kiện. Ở chế độ root, vmWrapTopLevelInitializers còn có thể bọc các biểu thức khởi tạo đủ điều kiện để ảo hóa; các preset VM hiện tại đều bật tùy chọn này. Hãy xem lại các cảnh báo về phạm vi bao phủ như VMNoFunctionsToVirtualize, và dùng chế độ comment để chọn tường minh các hàm nhạy cảm.
Làm rối làm tăng chi phí dịch ngược nhưng không khiến việc đó trở nên bất khả thi, vì vậy hãy giữ các bí mật và những quyết định bảo mật có thẩm quyền ở phía máy chủ - xem Thực hành tốt nhất để biết làm rối có thể và không thể đảm bảo những gì.
Cần trợ giúp? Nếu làm rối VM hoạt động không như mong đợi, hãy xem Chẩn đoán lỗi khi chạy của VM để biết cách khoanh vùng vấn đề và gửi báo cáo lỗi.
Trong phần này
Tương thích môi trường chạy
Cho bản dựng khớp với nơi nó chạy: tùy chọn Target, các cơ chế phòng thủ lúc chạy, và những gì quy trình build phải giữ nguyên.
Cách VM biến đổi mã
Những gì VM giữ lộ diện so với những gì nó che giấu, và cách bảo vệ tên hàm.
Nhắm mục tiêu hàm cụ thể
Chỉ làm rối VM một cách chọn lọc cho các hàm nhạy cảm để đạt hiệu năng tối ưu.
Register-Based VM
Chuyển VM sang mô hình thực thi dựa trên thanh ghi: chạy nhanh hơn, đổi lại gói lớn hơn một chút.
Async Executor
Chạy VM bất đồng bộ để khóa giải mã bytecode có thể được lấy về lúc chạy thay vì đóng gói sẵn trong bundle.
Tương thích chế độ strict
Khai báo chế độ strict để VM biên dịch ra bytecode chính xác.
Hành vi của direct eval
Vì sao direct eval() vô hiệu hóa làm rối VM, và cách tránh cạm bẫy này.
VM Self Defending
Phát hiện can thiệp, kiểm tra toàn vẹn mã và chống hooking cho runtime của VM.
VM Debug Protection
Các biện pháp chống gỡ lỗi cho mã được bảo vệ bằng VM.
VM Domain Lock
Giới hạn mã VM đã làm rối chỉ chạy trên các tên miền và tên miền phụ cụ thể.
Browser Environment
Khai báo cách bản dựng production của bạn được phục vụ để mã được bảo vệ có thể ràng buộc tính toàn vẹn vào đó.
