2013-02-07 38 views
6

Chúng tôi đang hợp tác với nhà cung cấp dịch vụ để hiển thị các dịch vụ của họ thông qua RESTful API.Sử dụng API RESTful - Có an toàn không?

Chúng tôi có thể xác thực bằng API bằng cách chuyển tên người dùng và mật khẩu làm thông số URL.

Ví dụ: https://example.com/api/service.json?api_user=Username&api_key=Password

Tôi biết điều này đang sử dụng SSL. Tuy nhiên, vì tên người dùng và mật khẩu là một phần của URL, điều này có thể bị chặn bởi bên thứ ba không?

Trả lời

7

Không, bên thứ ba sẽ chỉ có thể xem đích (example.com). Phần còn lại của URL thực sự được nhúng bên trong yêu cầu.

Giúp hiểu quá trình yêu cầu HTTP (hoặc HTTPS).

  1. xác định giao thức (trong trường hợp này HTTPS, sử dụng cổng 443)
  2. get địa chỉ IP của máy chủ sử dụng DNS
  3. thiết lập một kết nối TCP đến máy chủ (nếu SSL được tham gia, nó phức tạp hơn một chút)
  4. vấn đề một yêu cầu đến máy chủ trên các kết nối mới sẽ giống như thế

    GET /api/service.json?api_user=Username&api_key=Password

Do yêu cầu thực sự là một phần của luồng dữ liệu được mã hóa, nên không có cách nào để ai đó theo dõi kết nối để trích xuất thông tin nhạy cảm.

+0

Có thể nó có thể xuất hiện ở dạng không được bảo vệ trên nhật ký máy chủ web. – mlt

+1

@mit - vâng, đó có thể là một vấn đề. Đó là trách nhiệm của nhà cung cấp dịch vụ để đảm bảo rằng những yêu cầu đó không được ghi lại hoặc được kiểm duyệt một cách thích hợp trong nhật ký. – Ferruccio

5

Tuy nhiên, vì tên người dùng và mật khẩu là một phần của URL, không thể điều này bị chặn bởi bên thứ ba?

URL cũng được gửi dưới dạng mã hóa. Nói cách khác, quá trình đóng chặt kênh xảy ra trước khi URL được gửi đến máy chủ.

Bạn an toàn.

6

Các câu trả lời trước đây đều chính xác về mặt kỹ thuật; nếu bạn đang sử dụng HTTPS, URL và dữ liệu chuỗi truy vấn sẽ được mã hóa trước khi truyền và có thể được coi là an toàn.

Tuy nhiên, thực tế là API yêu cầu tên người dùng và mật khẩu làm tham số chuỗi truy vấn có thể cho biết cách tiếp cận hơi lỏng lẻo đối với bảo mật. Ví dụ: nhiều máy chủ web sẽ ghi nhật ký tham số truy vấn yêu cầu theo mặc định, có nghĩa là thông tin đăng nhập thuần văn bản của bạn có thể nằm trên đĩa ở đâu đó (và nhiều công ty sẽ lưu trữ hoặc sao lưu, nhật ký máy chủ web theo cách không an toàn) .

Tóm lại: chuyển thông tin xác thực dưới dạng thông số chuỗi truy vấn không phải là rủi ro bảo mật mỗi giây, nhưng thường là thực hành không tốt và có thể có triệu chứng về vấn đề bảo mật lớn hơn.

Các vấn đề liên quan