Xin lỗi @MarkAmery và Eugene, nhưng điều đó không chính xác.
Ứng dụng js + html (client) của bạn đang chạy trong trình duyệt CÓ THỂ được thiết lập để loại trừ các lệnh gọi trực tiếp trái phép tới API như sau:
- Bước đầu tiên: Thiết lập API để yêu cầu xác thực. Trước tiên, máy khách phải tự xác thực thông qua máy chủ (hoặc một số máy chủ bảo mật khác), ví dụ như yêu cầu người dùng cung cấp mật khẩu chính xác.
Trước khi xác thực, các lệnh gọi tới API không được chấp nhận.
Trong quá trình xác thực, một "mã thông báo" được trả lại.
Sau khi xác thực, chỉ các lệnh gọi API có "mã thông báo" xác thực mới được chấp nhận.
Tất nhiên ở giai đoạn này, chỉ những người dùng được ủy quyền có mật khẩu mới có thể truy cập API, mặc dù nếu họ là lập trình viên gỡ lỗi ứng dụng, họ có thể truy cập trực tiếp vào mục đích thử nghiệm.
- Bước thứ hai: Bây giờ, hãy thiết lập một API bảo mật bổ sung, được gọi trong giới hạn thời gian ngắn sau khi ứng dụng js + html của ứng dụng khách được yêu cầu ban đầu từ máy chủ. "Cuộc gọi lại" này sẽ cho máy chủ biết rằng máy khách đã được tải xuống thành công. Hạn chế lệnh gọi API REST của bạn chỉ hoạt động nếu ứng dụng khách được yêu cầu gần đây và thành công.
Bây giờ để sử dụng API của bạn, trước tiên họ phải tải xuống ứng dụng khách và thực sự chạy nó trong trình duyệt. Chỉ sau khi nhận được lệnh gọi lại thành công và sau đó là mục nhập của người dùng trong một khoảng thời gian ngắn, API mới chấp nhận lệnh gọi.
Vì vậy, bạn không phải lo lắng rằng đây có thể là một người dùng trái phép mà không có thông tin xác thực.
(Tiêu đề của câu hỏi, 'Làm cách nào để bảo mật các lệnh gọi API REST', và từ hầu hết những gì bạn nói, đó là mối quan tâm chính của bạn, và không phải là câu hỏi nghĩa đen về CÁCH API của bạn được gọi, mà là BẰNG CÁCH NÀO, đúng không? )