Bảo mật RESTful API giữa Server và Mobile App
Ngữ cảnh:
Mình đang thực hiện ý tưởng phát triển app di động tương tác với dữ liệu ở server thông qua API được viết bằng PHP.
Vấn đề:
Mình gặp vấn đề ở chỗ là làm sao để đảm bảo rằng server sẽ chỉ trả lại response cho những request đến từ app của mình mà thôi. Các truy vấn trực tiếp khác không qua app sẽ không được server chấp nhận.
Thực tế
Mình có tìm hiểu thử về giải pháp là sử dụng API Key lưu trong app để gửi kèm theo các request đến server nhằm xác nhận. Nhưng vì API Key sẽ được lưu trực tiếp trong app nên sẽ nguy cơ bị lộ khi người khác decompile app, vậy sẽ không còn bảo mật?
Câu hỏi:
Vậy mọi người cho mình hỏi có giải pháp nào để giải quyết vấn đề trên hoặc hạn chế việc bị lộ API Key không?
Cảm ơn mọi người.
Câu hỏi rất phổ biến mình cũng từng thắc mắc, có rất nhiều cách khác nhau
stackoverflow.com
Best practice for storing and protecting private API keys in applications
Mỗi user sẽ được cấp token, request gửi lên sẽ dựa vào token để verify user, token được lưu trong máy user. decompile app thì sao lộ được?
Yup, mục tiêu cuối cùng là làm khó để thằng nào có ý định chôm đồ của mình nản bỏ đi, chứ nó quyết tâm phá thì đỡ đường mướp
Lúc gửi từ app mình của mình thì thêm vào trong gói tin 1 cái token nhận dạng app, bên server khi thấy cái token đó thì chấp nhận gửi thông tin còn ko thì báo not found
Tất nhiên còn nhiều cách. nhưng cách này dễ nhất rồi
Nhưng mà chỉ hạn chế thôi, chứ server thì làm sao mà phân biệt được client nào là client của mình chứ