Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Nhiều người nghĩ bảo mật là việc của máy chủ, còn ứng dụng chỉ là giao diện. Thực tế ứng dụng nằm trong tay người dùng, tức là cũng nằm trong tay kẻ xấu: nó có thể bị dịch ngược, phân tích lưu lượng và sửa đổi. Bài viết nêu các nguyên tắc cơ bản giúp tránh lỗi phổ biến.
Mã trong ứng dụng có thể bị tháo ra và đọc. Mọi dữ liệu lưu trên máy có thể bị truy cập nếu máy bị root hoặc jailbreak. Mọi lưu lượng có thể bị chặn xem nếu không bảo vệ. Vì thế, máy chủ không bao giờ được tin tưởng dữ liệu từ ứng dụng mà không kiểm tra lại.
Khóa API riêng tư, mật khẩu cơ sở dữ liệu, khóa ký đều không được nằm trong mã ứng dụng, dù có làm rối. Nếu ứng dụng cần gọi dịch vụ bên thứ ba bằng khóa bí mật, hãy để máy chủ của bạn gọi thay và ứng dụng chỉ nói chuyện với máy chủ đó. Khóa công khai dành cho ứng dụng khách thì cần giới hạn phạm vi sử dụng ở phía nhà cung cấp, ví dụ theo mã định danh ứng dụng.
Việc kiểm tra quyền như người dùng này có được xem đơn hàng kia không phải làm ở máy chủ. Nếu chỉ ẩn nút trong ứng dụng, kẻ tấn công vẫn có thể gọi trực tiếp API. Mỗi yêu cầu cần được xác thực và phân quyền độc lập, kiểm tra dữ liệu đầu vào ở máy chủ.
Làm rối mã (obfuscation) không ngăn được kẻ quyết tâm nhưng làm tăng chi phí tấn công. Với Android, bật R8; với Flutter, dùng tùy chọn obfuscate khi build bản phát hành:
flutter build apk --release --obfuscate --split-debug-info=build/symbols
Hãy lưu thư mục symbols để giải mã nhật ký sập về sau. Nên hiểu đây chỉ là một lớp phòng thủ, không thay thế việc đặt logic bảo mật ở máy chủ.
Coi dữ liệu từ deep link, WebView, tệp được chia sẻ hay thông báo là không đáng tin; kiểm tra và làm sạch trước khi dùng. Với WebView, tắt JavaScript nếu không cần và không bật quyền truy cập tệp dư thừa. Không cho WebView tải nội dung tùy ý với quyền cao.
Dùng API sinh trắc học của hệ điều hành để bảo vệ thao tác nhạy cảm; đừng tự cài đặt. Kết hợp với kho khóa an toàn để dữ liệu chỉ mở khi xác thực thành công.
Bảo mật là nhiều lớp phòng thủ chứ không phải một công tắc. Nguyên tắc nền tảng là không tin ứng dụng khách, không nhúng bí mật và bảo vệ dữ liệu khi lưu lẫn khi truyền. Làm đúng những điều cơ bản này đã chặn được phần lớn lỗi thường gặp.
Nếu bạn muốn hiểu bảo mật từ cả hai phía ứng dụng và máy chủ, hãy xem thêm các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment