30/09/2018, 21:53

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.

X viết 23:54 ngày 30/09/2018

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
Basic Coder

Best practice for storing and protecting private API keys in applications

android, reverse-engineering, proguard, api-key
asked by Basic Coder on 08:50PM - 28 Jan 13

Nguyen Ca viết 00:07 ngày 01/10/2018

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

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?

lite2210 viết 23:58 ngày 30/09/2018

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ứ

Bài liên quan
0