Xuất bản vào

Làm thế nào để thiết kế một truy cập API web an toàn cho trang web của bạn?

Tác giả

Khi chúng ta cho phép người dùng truy cập vào API web, chúng ta cần đảm bảo rằng mỗi yêu cầu API đều được xác minh. Điều này có nghĩa là chúng ta cần xác nhận rằng người dùng là người mà họ tuyên bố.

Image

Trong bài viết này, chúng ta xem xét hai cách phổ biến để bảo mật truy cập API:

  1. Xác thực dựa trên mã thông báo

  2. Xác thực HMAC (Mã xác thực thông điệp dựa trên băm)

Sơ đồ dưới đây cho thấy cách mỗi phương pháp hoạt động.

Xác thực dựa trên mã thông báo

  1. Người dùng nhập mật khẩu của họ trên máy khách, sau đó gửi đến Máy chủ Xác thực.

  2. Máy chủ xác minh mật khẩu và tạo một mã thông báo với thời gian hết hạn.

  3. Máy khách có thể sử dụng mã thông báo này trong tiêu đề HTTP để gửi yêu cầu đến máy chủ.

  4. Mã thông báo vẫn hợp lệ cho đến khi hết hạn, cho phép truy cập vào tài nguyên máy chủ.

Xác thực dựa trên HMAC

  1. Máy chủ tạo ra hai khóa: khóa công khai (Public APP ID) và khóa riêng (API Key).

  2. Ở phía máy khách, một chữ ký (HMAC) được tạo ra bằng cách sử dụng các khóa này và các thuộc tính nhất định được liệt kê trong sơ đồ.

  3. Máy khách gửi yêu cầu đến máy chủ với chữ ký HMAC này trong tiêu đề HTTP.

  4. Máy chủ nhận yêu cầu, trích xuất các thuộc tính, và tạo ra chữ ký của riêng mình (HMAC B) bằng cách sử dụng API Key đã lưu trữ.

  5. Máy chủ so sánh HMAC A (từ máy khách) và HMAC B (từ máy chủ). Nếu chúng khớp nhau, máy chủ sẽ phản hồi yêu cầu.

Câu hỏi: HMAC đảm bảo tính toàn vẹn dữ liệu như thế nào? Tại sao chúng ta bao gồm "dấu thời gian yêu cầu" trong HMAC?

Trả lời: HMAC đảm bảo tính toàn vẹn dữ liệu bằng cách tạo ra một chữ ký duy nhất dựa trên dữ liệu yêu cầu và các khóa, vì vậy nếu bất kỳ dữ liệu nào bị thay đổi, chữ ký sẽ không khớp. Bao gồm "dấu thời gian yêu cầu" giúp ngăn chặn các cuộc tấn công phát lại (sử dụng lại các yêu cầu cũ), vì chữ ký chỉ hợp lệ trong một khoảng thời gian cụ thể.

TÁC GIẢ

Về ABN Asia: AiUTOMATING PEOPLE, ABN Asia được thành lập từ năm 2012, là một công ty xuất phát từ học thuật, do những giảng viên, cựu du học sinh Hungary, Hà Lan, Nga, Đức, và Nhật Bản sáng lập. Chúng tôi chia sẻ đam mê chung và tầm nhìn vững chắc về công nghệ, mang đến sự đổi mới và chất lượng đỉnh cao cho khách hàng. Phương châm của chúng tôi là: Tốt hơn. Nhanh hơn. An toàn hơn. Trong nhiều trường hợp: Rẻ hơn.

Hãy liên hệ với chúng tôi khi Quý doanh nghiệp có các nhu cầu về dịch vụ công nghệ thông tin, tư vấn chuyển đổi số, tìm kiếm các giải pháp phần mềm phù hợp, hoặc nếu Quý doanh nghiệp có đấu thầu CNTT (RFP) để chúng tôi tham dự. Quý doanh nghiệp có thể liên hệ với chúng tôi qua địa chỉ email [email protected]. Chúng tôi sẵn lòng hỗ trợ với mọi nhu cầu công nghệ của Quý doanh nghiệp.

ABNAsia.org

© ABN ASIA

AbnAsia.org Software