Bảo mật code VBA

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

n.n.Tien

Thành viên mới
Tham gia
6/9/24
Bài viết
14
Được thích
1
Mình có 1 file *.xslm có chứa code VBA và muốn bảo mật code VBA để người khác ko chỉnh sửa được. Mặc dù đã đặt mật mã cho đoạn code nhưng vẫn bị bẻ khóa. Nhờ các ace trong Group có biện pháp nào giúp mình bảo mật được code VBA khi mình chia sẻ file cho người khác dùng chung đc ko nhỉ? Thanks cả nhà
 
Bạn chuyển sang học lập trình Assembly và sử dụng Thunk code trong VBA là không có nhân tài nào bẻ được mã của bạn.
 
Upvote 0
Bạn chuyển sang học lập trình Assembly và sử dụng Thunk code trong VBA là không có nhân tài nào bẻ được mã của bạn.
Cảm ơn bạn đã gợi ý. Do mình ko phải là dân lập trình chuyên nghiệp nên ko hiểu sâu về lập trình. Mình cũng chỉ tự mầy mò mấy code VBA trong phạm vi công việc của mình mà ko có cách nào để quản lý và bảo vệ được file *.xlsm có Marco
 
Upvote 0
Upvote 0
Upvote 0
C/C++ hay dotNet thì cũng phải có code của bên thứ 3 để bảo mật.
Còn không thì người ta cũng tìm cách xem được. Tôi giả thiết 1 xíu để trao đổi nhé:
Giả sử tôi có file bạn làm "rất xịn" và đã được bảo mật.
1. Tôi quay video lại và đưa lên diễn đàn GPE, sẽ cố làm một chút form giống vậy, tưởng tượng ra flow, sau đó thì nhờ anh em trên này code giúp.
2. Tôi không có ý nói code bạn không hay, hoặc bỏ qua công sức của bạn. Xin lỗi nếu lỡ có làm bạn phật ý.
Bạn cứ code cho tốt, rồi nếu không có gì quá ghê gớm thì cứ chia sẻ, bão lũ này nhiều người còn mang cả tiền tỷ ra đi cho. Code thuần trên này nhiều người sẵn sàng giúp, nhiều khi còn không được cả cảm ơn.
 
Upvote 0
C/C++ hay dotNet thì cũng phải có code của bên thứ 3 để bảo mật.
Còn không thì người ta cũng tìm cách xem được. Tôi giả thiết 1 xíu để trao đổi nhé:
Giả sử tôi có file bạn làm "rất xịn" và đã được bảo mật.
1. Tôi quay video lại và đưa lên diễn đàn GPE, sẽ cố làm một chút form giống vậy, tưởng tượng ra flow, sau đó thì nhờ anh em trên này code giúp.
2. Tôi không có ý nói code bạn không hay, hoặc bỏ qua công sức của bạn. Xin lỗi nếu lỡ có làm bạn phật ý.
Bạn cứ code cho tốt, rồi nếu không có gì quá ghê gớm thì cứ chia sẻ, bão lũ này nhiều người còn mang cả tiền tỷ ra đi cho. Code thuần trên này nhiều người sẵn sàng giúp, nhiều khi còn không được cả cảm ơn.
Mình ko hiểu ý bạn lắm. Code của mình thì cũng ko có gì ghê gớm cả. chỉ phục vụ chuyên môn công việc riêng thôi. Nhưng có điều quan trọng là trong file của mình sử dụng liên kết đến SQL Server của công ty. Nếu như bị bẻ khóa thì đồng nghĩa với việc bị lộ Server name, User, Pw. Đấy là điều tôi lo ngại nhất chứ tôi cũng ko tiếc gì mà ngại ngần chia sẻ cho các đồng nghiệp!
Bạn có cách nào mà khi bị bẻ khóa vẫn bảo vệ đc Server, User & Pw ko?
 
Upvote 0
Mình có 1 file *.xslm có chứa code VBA và muốn bảo mật code VBA để người khác ko chỉnh sửa được. Mặc dù đã đặt mật mã cho đoạn code nhưng vẫn bị bẻ khóa. Nhờ các ace trong Group có biện pháp nào giúp mình bảo mật được code VBA khi mình chia sẻ file cho người khác dùng chung đc ko nhỉ? Thanks cả nhà
Cách thì có, nhưng trình chưa tới thì khó. Khi đã đạt cảnh giới cao rồi thì cần quái gì phải khóa, họ có xem code thì cũng có hiểu gì đâu.
Cơ bản là khi xài VBA thì khó bảo mật lắm, cần bảo mật thì phải dùng cái khác thôi
 
Upvote 0
Như vậy có nghĩa là ko sẽ ko có cách nào để bảo vệ sản phẩm của mình làm ra ư?
Bạn đi học lại hoặc tra google để có mã như ý, mà lại muốn bảo mật code, đó là ích kỉ bạn nhé. Cả thế giới đang cùng nhau chia sẻ hàng triệu hàng tỉ giải thuật và thuật toán. Chỉ có người "ích kỉ, cầu lợi" mới nghĩ nhiều đến việc bảo vệ code bạn nhé. Chưa cống hiến được gì cho đời mã muốn lấy nhiều hơn cho. Nếu bạn không hiểu người đã bỏ công sức ra học tập, thì làm sao hiểu được nổi khó khăn. Đơn giản chữ viết và ngôn ngữ bạn đang nói và đang đọc, là cả quá trình phát triển. Huống chi là những dòng mã bạn tìm thấy.

Tập có ý nghĩ cho đi, thì bộ não tự nhiên mà kết tụ trí tựu siêu việt.
Tốt nhất là nên hiểu chút về luật "cây rễ hoa quả"
 
Upvote 0
Bạn đi học lại hoặc tra google để có mã như ý, mà lại muốn bảo mật code, đó là ích kỉ bạn nhé. Cả thế giới đang cùng nhau chia sẻ hàng triệu hàng tỉ giải thuật và thuật toán. Chỉ có người "ích kỉ, cầu lợi" mới nghĩ nhiều đến việc bảo vệ code bạn nhé. Chưa cống hiến được gì cho đời mã muốn lấy nhiều hơn cho. Nếu bạn không hiểu người đã bỏ công sức ra học tập, thì làm sao hiểu được nổi khó khăn. Đơn giản chữ viết và ngôn ngữ bạn đang nói và đang đọc, là cả quá trình phát triển. Huống chi là những dòng mã bạn tìm thấy.

Tập có ý nghĩ cho đi, thì bộ não tự nhiên mà kết tụ trí tựu siêu việt.
Tốt nhất là nên hiểu chút về luật "cây rễ hoa quả"
Cảm ơn bạn đã nhắc nhở. Code của mình thì cũng ko có gì ghê gớm cả. chỉ phục vụ chuyên môn công việc riêng thôi. Nhưng có điều quan trọng là trong file của mình sử dụng liên kết đến SQL Server của công ty. Nếu như bị bẻ khóa thì đồng nghĩa với việc bị lộ Server name, User, Pw. Đấy là điều tôi lo ngại nhất chứ tôi cũng ko tiếc gì mà ngại ngần chia sẻ cho các đồng nghiệp!
Bạn có cách nào mà khi bị bẻ khóa vẫn bảo vệ đc Server, User & Pw ko?
Bạn là thành viên của nơi đã cho bạn công ăn việc làm thì bạn có muốn để những việc gây hại cho tổ chức của mình ko???
Nếu là ích kỷ thì chỉ dành riêng cho bản thân mình dùng, chứ còn mang đi chia sẻ cho người khác dùng làm chi. Nếu như bạn làm ra 1 thứ hoặc ít nhất là cũng mất bao công sức tìm kiếm học hỏi để làm ra cho người khác sử dụng free rồi sau đó là mất dữ liệu, lộ thông tin..... Theo bạn cái đó có cần đc bảo vệ ko???
 
Upvote 0
Không ai trót dại đi nhập password và usename vào mã VBA với ứng dụng nhiều người dùng bạn nhé, trừ khi account đó có giới hạn là chỉ được phép truy cập dữ liệu nhưng không được sửa đổi. account đó gọi chung là public account. account cần giữ an toàn thì phải để người dùng nhập tay tại thời điểm người dùng mở và sử dụng ứng dụng.
Nếu dữ liệu tại server là dữ liệu quan trọng thì cần mã hóa với công nghệ mã hóa và quản lý tài khoản truy cập theo tiêu chuẩn.
 
Upvote 0
Bạn có cách nào mà khi bị bẻ khóa vẫn bảo vệ đc Server, User & Pw ko?
Cái này là quan trọng nhất nhưng bạn thiết kế kiểu gì mà có lưu User/pass trong code vậy?
Theo cách tôi làm là có 2 cổng trước khi vào tới table dữ liệu.
1. User/pass để kết nối tới SQL Server.
2. User/pass của ứng dụng của bạn. Dùng kết nối vào Table dữ liệu. Pass này được mã hóa 1 chiều. Ví dụ: HashBytes('md5', password).
Bạn không tiết lộ user/pass cho người khác thì làm sao họ đăng nhập được. Không tính tới trường hợp bị xâm nhập gói tin gửi đi của các h a c k e r nhé.

Chuỗi kết nối như vậy thì làm sao biết được bạn.
Screen Shot 2024-09-19 at 10.31.55.png
 
Upvote 0
Cái này là quan trọng nhất nhưng bạn thiết kế kiểu gì mà có lưu User/pass trong code vậy?
Theo cách tôi làm là có 2 cổng trước khi vào tới table dữ liệu.
1. User/pass để kết nối tới SQL Server.
2. User/pass của ứng dụng của bạn. Dùng kết nối vào Table dữ liệu. Pass này được mã hóa 1 chiều. Ví dụ: HashBytes('md5', password).
Bạn không tiết lộ user/pass cho người khác thì làm sao họ đăng nhập được. Không tính tới trường hợp bị xâm nhập gói tin gửi đi của các h a c k e r nhé.

Chuỗi kết nối như vậy thì làm sao biết được bạn.
View attachment 304062
Cảm ơn bạn đã chia sẻ. Mình cũng có InputBox User, PW bằng tay cho các user khác sử dụng và chỉ giới hạn cho họ chỉ đc trích xuất dữ liệu còn họ sẽ ko biết tên Server Name và DatabaseName. Giả dụ 1 user khác có quyền Insert, Update, Delete bị lộ thì họ cũng ko biết đc ServerName và DatabaseName để can thiệp. Mà ServerName và DatabaseName thì phải để trong Code VBA.
 
Upvote 0
Mà ServerName và DatabaseName thì phải để trong Code VBA.
Nếu bạn muốn dấu luôn chuỗi kết nối này thì viết nó thành DLL (VB6, VB.Net) rồi gọi nó trong code. Tôi chỉ biết tới cách này thôi, còn cách nào khác nữa thì chưa biết. :)
Ví dụ:

Mã:
Dim oCnn as myConnection
Set oCnn = New myConnection
 
Upvote 0
Mà ServerName và DatabaseName thì phải để trong Code VBA.
Lưu trong máy (Registry) được mà.
Muốn an toàn hơn nữa thì lưu thông tin đã mã hóa, code sẽ giải mã. Có lộ file cũng không lo.
Nếu chính người dùng trong công ty bạn cố tình xâm nhập thì chắc không có cách nào an toàn cả.
 
Upvote 0
Muốn an toàn hơn nữa thì lưu thông tin đã mã hóa, code sẽ giải mã. Có lộ file cũng không lo.
Nếu họ có file thì có code giải mã trong đó + file mã hóa thì học cũng giải được đúng không bạn? hay có cách mã hóa khác mà tôi chưa hình dung ra.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom