01/10/2018, 14:39

Public hay private biến

Giả sử em có 1 biến toàn cục List<T> profile trong class App (WPF).
Trong cái class App của em có 1 công cụ giải mã cho 1 loại file đặc thù vs mã hoá dữ liệu. Và dữ liệu vừa đọc lưu và profile.
profile giờ đây là 1 file cần được bảo mật.
Em có 1 suy nghĩ như thế này: Khi chương trình khởi chạy thì hđh sẽ gọi App app1 = new App(); rồi cho chương trình khởi chạy???
Không biết em nghĩ vậy có đúng không?
Vậy khi đặt public cho biến này thì các ứng dụng khác (giả sử là 1 ứng dụng được tạo ra với ý đồ hack app của em :)) ) có đọc được không ạ? (Bằng cách gọi 1 class App khác cho chạy ngầm để khai thác luôn công cụ giải mã rồi lôi luôn cái dữ liệu trong profile)
Em hơi ảo tưởng sức mạnh tí mong mấy bác giải đáp hộ.

Dark.Hades viết 16:51 ngày 01/10/2018

Mình đọc không hiểu bạn viết gì cho lắm, tuy nhiên sẽ trả lời vài ý mà mình hiểu câu hỏi của bạn.

Biến bạn set là private hay public hay protected nó chỉ có tác dụng khi bạn lập trình trên cùng ứng dụng/library mà thôi. Và nó cũng chỉ có tác dụng trong build/compile time là hết.

Khi hacker/ai đó xác định viết một app auto (game), hacking… đọc dữ liệu từ app của bạn thì họ sử dụng API do OS cung cấp, biến này nọ các kiểu đã được chuyển thành địa chỉ trên RAM rồi, lúc này chỉ đọc địa chỉ và kích cỡ của vùng nhớ đó thôi, không liên quan gì tới code của bạn nữa.

Trần Linh viết 16:46 ngày 01/10/2018

Cho em mạn phép đào mộ, em nghĩ đi nghĩ lại, cái private ấy ngoài cái ứng dụng đó là không cho phép truy cập sửa chữa dữ liệu từ bên ngoài (nhằm mục đích để tránh lỗi, …) thì nó còn có cái ứng dụng nào khác không ạ? Em thấy nhưng thế thì cần gì phải chia ra public rồi static lm j akkkk???

明玉 viết 16:42 ngày 01/10/2018

Thích hợp cho việc làm nhóm bạn ạ, để nhiều lập trình viên có thể làm việc chung một cách an toàn không ai “lỡ tay” sửa property của người khác.
Còn app của bạn đã build rồi thì về mặt lý thuyết, mình có thể soi toàn bộ code (mã máy) và data, thực tế thì việc đó khá khó.

Bài liên quan
0