Cách kết nối python app với mysql bảo mật cao

Discussion in 'Linux - PHP - Python - C# - Java' started by hamhochoi, Aug 5, 2021.

Tags:
  1. hamhochoi

    hamhochoi Khách Qua Đường

    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 ợ @@@
     
  2. thanh858036

    thanh858036 Sơ Nhập Giang Hồ

    làm api khỏi phải kết nối trực tiếp
     
    hamhochoi, reccalua and huvo6789 like this.
  3. huvo6789

    huvo6789 Tân Thủ Thôn

    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 :D, rồi mã hóa user, password....
     
    hamhochoi likes this.
  4. firefox

    firefox Bang Chúng

    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.
     
    Nai and hamhochoi like this.
  5. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    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.
     
    hamhochoi likes this.
  6. reccalua

    reccalua Khách Qua Đường

    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.
     
    hamhochoi likes this.
  7. hamhochoi

    hamhochoi Khách Qua Đường

    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
     
  8. money

    money Hương Chủ

    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 …
     
  9. firefox

    firefox Bang Chúng

    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
     
  10. hamhochoi

    hamhochoi Khách Qua Đường

    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