Gửi một yêu cầu HTTP với xác thực cơ bản

Bash:
Gửi một yêu cầu HTTP với xác thực cơ bản

Làm thế nào:

Hãy thử nghiệm với một số mã. Chúng ta sẽ sử dụng curl, một công cụ dòng lệnh phổ biến. Thay thế username:password bằng thông tin xác thực của bạn và http://example.com/resource bằng URL mục tiêu của bạn.

curl -u username:password http://example.com/resource

Hoặc mã hóa thông tin xác thực của bạn bằng base64 trước và sử dụng như sau:

# Mã hóa thông tin xác thực
credentials=$(echo -n username:password | base64)

# Gửi yêu cầu
curl -H "Authorization: Basic $credentials" http://example.com/resource

Kết quả mẫu cho một yêu cầu thành công có thể trông như thế này:

{
  "data": "Một số thông tin bị hạn chế",
  "message": "Truy cập được chấp nhận"
}

Sâu hơn

Theo lịch sử, xác thực cơ bản đã là một phần của HTTP từ những ngày đầu, nhưng nó không phải không có nhược điểm - chủ yếu là sự dễ bị tấn công nếu không sử dụng qua một kênh an toàn như HTTPS.

Các lựa chọn thay thế bao gồm OAuth, được coi là an toàn hơn và cung cấp kiểm soát tốt hơn về những gì được truy cập. Xác thực Digest là một lựa chọn khác, gửi thông tin xác thực được băm thay vì văn bản thuần.

Về cơ học, khi bạn gửi thông tin xác thực cơ bản, chúng được bao gồm trong tiêu đề HTTP được mã hóa trong Base64. Đây không phải là mã hóa, vì vậy nếu bạn không sử dụng HTTPS, bất kỳ ai chặn được yêu cầu đều có thể giải mã một cách dễ dàng. Sử dụng HTTPS bảo vệ việc truyền dữ liệu, mã hóa mọi thứ giữa khách hàng và máy chủ.

Xem thêm