Bảo vệ mã nguồn trong javascript không có sẵn trong NodeJS. Giải pháp khả thi là biên dịch mã ở dạng nhị phân hoặc mã hóa mã Giải pháp được cung cấp mã hóa các tệp javascript có logic nghiệp vụ quan trọng để mã không thể đọc được dễ dàng Vòng đời thực thi tập lệnh NodeJSCác giải pháp khả thi để bảo vệ mã nguồnỨng dụng có thể thực thi- Biên dịch mã nguồn ứng dụng hoàn chỉnh thành một tệp thực thi duy nhất
- Vận chuyển tệp thực thi duy nhất này cũng sẽ bao gồm thời gian chạy NodeJS
- Thật không may, mã nguồn được nhúng dưới dạng chuỗi đơn giản bên trong mã nguồn nhị phân và ứng dụng có thể trích xuất dễ dàng
- Có những gói có sẵn cho việc này như pkg
Mã hóa bằng tệp JSE- Mã hóa tệp mã javascript (. js để. tập tin jse)
- Yêu cầu mô-đun của nodejs hỗ trợ các chức năng xử lý tiện ích mở rộng
- Vì vậy, hãy viết một hàm để xử lý các tệp jse
- Viết module giải mã file jse thành file js
Ghi chú. Thật không may vì phương pháp giải mã có thể truy cập công khai, bất kỳ ai cũng có thể giải mã nguồn một cách đơn giản
// register extension
require.extensions[".jse"] = function (m) {
m.exports = MyNativeExtension.decrypt(fs.readFileSync(m.filename));
};
require("YourCode.jse");
Giải pháp tốt nhất- Mã hóa các tệp javascript trong quá trình xây dựng hoặc trước khi đóng gói cho khách hàng
- Giải mã tệp trong bộ nhớ ngay trước khi chạy bằng các nhị phân NodeJS được tạo tùy chỉnh
Vòng đời thực thi tập lệnh được cập nhậtSử dụng nhị phân NodeJS dựa trên mã hóaĐể mã hóa mã nguồn, mã hóa. tập tin js có thể được sử dụng Tập tin này thực hiện các thao tác sau - Yêu cầu mô-đun
["index.js", "server/server.js", "common/models/sample-model.js"]
1 trong các tệp nhị phân NodeJS tùy chỉnh xử lý mã hóa - Tìm nạp danh sách các tệp để mã hóa từ tệp
["index.js", "server/server.js", "common/models/sample-model.js"]
2 là một mảng các đường dẫn tệp w. r. t thư mục hiện tại - Kiểm tra xem danh sách tệp trong
["index.js", "server/server.js", "common/models/sample-model.js"]
2 có được mã hóa hay không và nếu không được mã hóa, hãy sử dụng hàm ["index.js", "server/server.js", "common/models/sample-model.js"]
4 để mã hóa tệp - Xóa tệp
["index.js", "server/server.js", "common/models/sample-model.js"]
2 để tệp không bị gửi nhầm
Ghi chú. Đề xuất đặt ["index.js", "server/server.js", "common/models/sample-model.js"]
6, ["index.js", "server/server.js", "common/models/sample-model.js"]
2 và ["index.js", "server/server.js", "common/models/sample-model.js"]
1 trong tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
2 so với cùng thư mục nơi mà ["index.js", "server/server.js", "common/models/sample-model.js"]
6 sẽ được thực thi
Sau đây là một tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
2 mẫu["index.js", "server/server.js", "common/models/sample-model.js"]
Ghi chú. Để sử dụng mã hóa, bạn cần sử dụng trình thực thi và hình ảnh cơ sở thích hợp trong Dockerfile có các tệp nhị phân nodejs tùy chỉnh hỗ trợ các hoạt động mã hóa và giải mã. Vui lòng tham khảo bảng dưới đây để biết các hình ảnh phù hợp
Hình ảnh với các nhị phân NodeJS tùy chỉnhPhiên bản NodeJSBase ImageExecutor ImageSource CodeBase Image SourceExecutor Image Source8. 11. 3 cơ quan đăng ký. đám mây. cục bộ/kpraveen-evalpinenode. đăng ký mới nhất. đám mây. cục bộ/oecloudlocal-oecloudexecutor. oenode8alpine36LinkLinkLink10. 16. 0đăng ký. đám mây. cục bộ/nút. 10. 16. 0-alpine-encryptedregistry. đám mây. cục bộ/oecloud-executor. 10. 16. 0-mã hóaLinkLinkLink12. 13. 0đăng ký. đám mây. cục bộ/nút. 12. 13. 0-alpine-encryptedregistry. đám mây. cục bộ/oecloud-executor. 12. 13. 0-mã hóaLinkLinkLink14. 17. 4evdtr. quảng cáo. infosys. com/oecloud/nút. v14. x-mã hóa-ubi8. 4-minimal_openssl_latesevdtr. quảng cáo. infosys. com/oecloud/oecloud-executor. v14. x-encrypted-ubi8LinkLinkLinkCách sử dụng trong CINhững thay đổi sau đây sẽ được thực hiện để mã hóa mã - Tạo tệp
["index.js", "server/server.js", "common/models/sample-model.js"]
2 với mảng tên tệp - Dự án nhân bản
["index.js", "server/server.js", "common/models/sample-model.js"]
6 - Chạy lệnh
["index.js", "server/server.js", "common/models/sample-model.js"]
7 mã hóa các tệp được liệt kê trong ["index.js", "server/server.js", "common/models/sample-model.js"]
2 và viết lại nội dung tệp thành mã được mã hóa và xóa tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
2 - Xóa thư mục
["index.js", "server/server.js", "common/models/sample-model.js"]
6 đã được sao chép - Xây dựng và/hoặc triển khai dự án của bạn
Sau đây là một tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
2 mẫu["index.js", "server/server.js", "common/models/sample-model.js"]
or
["index.js", "common/**/*.js", "server/**", "node_modules/oe-cloud/common/**"]
Ghi chú. Tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
6 sẽ chỉ tìm kiếm các tệp kết thúc bằng. js. Vì thư mục node_modules không bị bỏ qua vì mã hóa cũng có thể được yêu cầu đối với các tệp bên trong thư mục node_modules, vui lòng đảm bảo rằng các mẫu được cung cấp không thực hiện mã hóa trên tất cả các tệp
Sau đây là các lệnh được thêm vào trong công việc xây dựng CI git clone http://evgit/oecloud.io/build-tools.git
node build-tools/encrypt.js
rm -rf build-tools
## Perform docker build after this
Ghi chú. Tệp ["index.js", "server/server.js", "common/models/sample-model.js"]
2 có mặt trong thư mục nơi lệnh ["index.js", "server/server.js", "common/models/sample-model.js"]
or
["index.js", "common/**/*.js", "server/**", "node_modules/oe-cloud/common/**"]
4 đang được thực thi
Dự án tham khảoDự án mẫu oeCloud ["index.js", "server/server.js", "common/models/sample-model.js"]
or
["index.js", "common/**/*.js", "server/**", "node_modules/oe-cloud/common/**"]
5 đã được phân nhánh để tạo nhánh ["index.js", "server/server.js", "common/models/sample-model.js"]
or
["index.js", "common/**/*.js", "server/**", "node_modules/oe-cloud/common/**"]
6 có triển khai mẫu để mã hóa
Làm cách nào để mã hóa mã trong NodeJS?
Cách mã hóa văn bản. tạo một tệp có tên encdec. js và dán. yêu cầu ('crypto')const mã hóa = (plainText, mật khẩu) Sau đó chạy. mã hóa, giải mã, mã hóa và kiểm tra. "Xin chào thế giới," "bí mật1234" Sau đó chạy chức năng giải mã. đầu ra "được giải mã" và "được mã hóa". Chào thế giới
Có thể mã hóa mã javascript không?
Bạn có thể làm xáo trộn nó, nhưng không có cách nào bảo vệ nó hoàn toàn .
Làm cách nào để mã hóa và giải mã giá trị trong NodeJS?
Quy trình giải mã bằng Node. mô-đun tiền điện tử js
. Fetch the IV and encrypted text from the data pass as an argument. Sử dụng phương thức createDeciphervie và chuyển thuật toán, khóa và IV sau đó đặt hàm thành bộ giải mã biến. Sử dụng biến giải mã để cập nhật văn bản được giải mã. |