Ứng dụng bảo mật là gì?
Application Security (Bảo mật ứng dụng) là quá trình bảo vệ ứng dụng khỏi các lỗ hổng và tấn công từ các mối đe dọa bên ngoài. Quá trình này bao gồm các biện pháp bảo vệ trong suốt vòng đời phát triển phần mềm (SDLC): từ thiết kế, viết mã, kiểm thử cho đến khi triển khai.
Mục tiêu của bảo mật ứng dụng
-
Ngăn chặn truy cập trái phép
-
Bảo vệ dữ liệu người dùng
-
Tránh lộ thông tin nội bộ (API key, token, mật khẩu,…)
-
Phòng chống tấn công (SQL Injection, XSS, CSRF,…)
-
Đảm bảo tính toàn vẹn, tính bảo mật và tính khả dụng của hệ thống
Các mối đe dọa phổ biến
1. SQL Injection
-
Chèn câu lệnh SQL thông qua input của người dùng để đánh cắp hoặc phá hoại cơ sở dữ liệu.
-
Phòng tránh: Dùng prepared statements / ORM, không nối chuỗi SQL thủ công.
2. Cross-Site Scripting (XSS)
-
Kẻ tấn công chèn mã JavaScript độc hại vào trang web.
-
Phòng tránh: Escape output đúng cách, dùng thư viện như DOMPurify.
3. Cross-Site Request Forgery (CSRF)
-
Dẫn dụ người dùng thực hiện hành động không mong muốn (như chuyển tiền).
-
Phòng tránh: Sử dụng token CSRF, kiểm tra Origin/Referer.
4. Broken Authentication
-
Hệ thống xác thực yếu khiến kẻ tấn công giả mạo danh tính.
-
Phòng tránh: Dùng xác thực mạnh (JWT, OAuth), giới hạn đăng nhập sai.
5. Sensitive Data Exposure
-
Dữ liệu quan trọng (mật khẩu, token) bị lộ ra ngoài.
-
Phòng tránh: Mã hóa dữ liệu, không lưu mật khẩu thô, ẩn thông tin nhạy cảm trong log.
Nguyên tắc bảo mật cơ bản
Nguyên tắc | Mô tả |
---|---|
Principle of Least Privilege | Người dùng và hệ thống chỉ nên có quyền tối thiểu để hoạt động. |
Input Validation | Kiểm tra kỹ đầu vào từ người dùng (client và server). |
Secure by Design | Thiết kế hệ thống với bảo mật là yếu tố cốt lõi ngay từ đầu. |
Fail Securely | Khi có lỗi, hệ thống phải rơi vào trạng thái an toàn. |
Avoid Security by Obscurity | Không nên giấu lỗi thay vì sửa lỗi, bảo mật không chỉ là che giấu. |
Một số công cụ kiểm thử bảo mật
-
OWASP ZAP: Công cụ kiểm thử bảo mật tự động (open-source).
-
Burp Suite: Kiểm tra bảo mật thủ công và tự động.
-
Static Code Analysis: Kiểm tra lỗ hổng trong source code (SonarQube, ESLint security plugin).
-
Dependency Scanners: Kiểm tra thư viện có lỗ hổng (npm audit, Snyk, OWASP Dependency Check).
Ứng dụng trong Flutter
Dù Flutter chủ yếu xử lý giao diện, bạn vẫn cần bảo mật khi làm việc với:
-
Lưu trữ local: Không lưu thông tin nhạy cảm ở SharedPreferences.. Nên dùng flutter_secure_storage.
-
API key/token: Không hardcode API key vào mã nguồn. Dùng .env mã hóa hoặc lưu ở backend.
-
Giao tiếp API: Sử dụng HTTPS. Kiểm tra SSL/TLS certificate khi cần thiết.
-
Xác thực: Kết hợp Flutter với backend bảo mật JWT, OAuth 2.0.
-
Obfuscation: Dùng lệnh flutter build apk –obfuscate để làm rối mã và ẩn thông tin nội bộ.