Hello các bác. Em định viết tool bằng python rồi đóng gói exe để bán. Cơ mà cần phải giao tiếp với database check người dùng. Em có một con web và muốn connect app python với mysql trên web đó . (Mục đích em phải kết nối với DB là để hạn chế số lần user sử dụng task trong tool, nếu hết số lần sẽ block và phải nạp thêm tiền để sử dụng) Ở đây em sử dụng mysql.connector để lấy dữ liệu từ DB . Nhưng phải cung cấp tất cả user, pass của mysql thì mới connect được . Lúc đóng gói exe cho người dùng sử dụng em lại sợ có cao nhân dịch ngược exe lấy được acc mysql thì công code tool coi như bỏ. Còn banh luôn cả cái DB. Em chưa làm thể loại này bao giờ nên cần các bác chỉ hướng đi làm sao cho nó bảo mật cao Đương nhiên không thể tuyệt đối nhưng em muốn tương đối tí các bác ợ @@@
sử dụng API là chuẩn nhất. còn nếu muốn k làm api b có thể mã hóa sang Cython rồi đóng gói .exe chắc k lấy được , rồi mã hóa user, password....
về bản chất, đã đưa exe rồi thì cái gì bên trong người ta cũng moi ra được. bạn nên dùng API, rồi dùng 1 accesstoken nào đó như jwt chẳng hạn, authentication / authorize xem thử user đó còn được phép gọi api đó hay ko.
Nếu dc chủ thớt nên làm web apps người dùng họ login vào rồi xài sẽ đỡ bị hack hơn. Đưa file về phía client thì méo thể tin dc thằng client đó táy máy gi đâu.
Chủ thớt có thể dùng api để verify, Bán cho họ cái app + cái token (token được lưu trong db của bạn có set expired), mỗi lần user dùng thì post cái token lên để kiểm tra.
Thanks các bác nhé. Cho em hỏi luôn có cách nào làm khó cho mấy pro dịch ngược không . Chả biết cách gì hay ho nên em thường replace các tên biến tên hàm tăng độ nhức óc rồi pyinstaller build thẳng. Em thấy có bác trên kia bảo dùng cython các bác có cách nào hay recommend giúp em với :v
Vấn đề em hỏi gọi là code obfuscation. Cách em đang làm là rất cơ bản và không có ý nghĩa gì nhiều. Để obfuscation thì nên dùng tool có sẵn. Ngôn ngữ lập trình nào cũng có co tool dạng này. Tuy nhiên việc obfuscation chỉ hạn chế được anh em decoder bình thường thôi, gặp pro vẫn thua. Cách tốt nhất tránh decode/decompiler là đưa system về serverside. Nếu ko đưa toàn bộ thì cũng nên đưa các chức năng quan trọng lên serverside. Khi đó app phải call api đến serverside để thực hiện. Cách này hay vì dù có bị decode lấy mã nguồn thì họ cũng ko làm gì được. Ngoài ra còn thuận tiện trong việc cho thuê dịch vụ, tính tiền hay đếm request để limit …
Thật ra là chỉ tăng một chút độ khó thôi. Lúc code mà cố làm vậy chỉ khó cho bác. Thay vào đó bác nên dùng 1 tool là đó chuyên bảo vệ code, ví dụ như pyarmor
Oke thanks bác. em cũng muốn đưa code về sever lắm nhưng tại bản chất tool phải chạy trên máy khách không thì sever tải không nổi . Em có xem được 1 video unpack pyinstaller thấy hơi . Chắc em phải obfuscation code như bác nói trên thui: youtube watch?v=jmC-FKNRdvk --- Double Post Merged, Aug 6, 2021, Original Post Date: Aug 6, 2021 --- Oke để em thử xem