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. :smiley:

2 Likes

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 :smile:

2 Likes

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?

1 Like

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 :laughing:

1 Like

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 :slight_smile:
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ứ :slight_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?