Những gì bạn muốn làm là sử dụng SSL lẫn nhau xác thực, do đó máy chủ của bạn sẽ chỉ chấp nhận kết nối từ ứng dụng của bạn và ứng dụng của bạn sẽ chỉ liên lạc với máy chủ của bạn .
Đây là cách tiếp cận cấp cao. Tạo chứng chỉ SSL máy chủ tự ký và triển khai trên máy chủ web của bạn. Nếu bạn đang sử dụng Android, bạn có thể sử dụng công cụ khóa được bao gồm trong SDK Android cho mục đích này; nếu bạn đang sử dụng nền tảng ứng dụng khác, các công cụ tương tự tồn tại cho chúng. Sau đó, tạo một máy khách tự ký và triển khai trong ứng dụng của bạn trong một kho khóa tùy chỉnh được bao gồm trong ứng dụng của bạn như một tài nguyên (keytool cũng sẽ tạo ra điều này). Cấu hình máy chủ để yêu cầu xác thực SSL phía máy khách và chỉ chấp nhận chứng chỉ ứng dụng khách mà bạn đã tạo. Định cấu hình ứng dụng khách để sử dụng chứng chỉ phía máy khách đó để xác định chính nó và chỉ chấp nhận chứng chỉ phía máy chủ mà bạn đã cài đặt trên máy chủ của mình cho phần đó.
Nếu ai đó/ứng dụng khác cố gắng kết nối với máy chủ của bạn, kết nối SSL sẽ không được tạo vì máy chủ sẽ từ chối kết nối SSL đến không xuất trình chứng chỉ ứng dụng khách mà bạn đã đưa vào ứng dụng của mình.
Từng bước cho câu hỏi này là câu trả lời dài hơn nhiều so với bảo hành ở đây. Tôi khuyên bạn nên thực hiện điều này theo các giai đoạn vì có các tài nguyên trên web về cách xử lý chứng chỉ SSL tự ký trong Android (tôi không quen với cách thực hiện điều này trên các nền tảng di động khác), cả máy chủ và phía máy khách. Ngoài ra còn có một bước đi hoàn chỉnh trong cuốn sách của tôi, Bảo mật ứng dụng cho nền tảng Android, được xuất bản bởi O'Reilly.
Tôi không chắc chắn nếu bất kỳ câu trả lời nào thỏa mãn câu hỏi của bạn. Vui lòng chia sẻ cách bạn tiếp cận vấn đề mà bạn đã mô tả. Tôi đang xây dựng ứng dụng web dựa trên REST + AJAX có thể được sử dụng cho những người dùng chưa đăng ký. Giống như chính mình, tôi muốn bảo vệ tài nguyên từ các chương trình. –
Về mặt logic, thực sự không có cách nào để làm cho một API thực sự riêng tư nếu nó được gọi từ một trang web mà bất cứ ai cũng có thể xem nguồn và/hoặc theo dõi dữ liệu đang được gửi tới máy chủ. Để bắt chương trình bạn có các thủ thuật thông thường như Captcha nhưng cuối cùng bạn cần hỗ trợ back-end (WAFs, tự động mở rộng quy mô nhanh, vv) để đối phó với khả năng tấn công kiểu DDOS tự động. Miễn là bạn phát hiện khả năng các cuộc tấn công DDOS càng sớm càng tốt (trước khi thực hiện kết nối DB, vv), nó không khác gì để xử lý các bot cố tải xuống trang này ngay từ đầu. –