Có an toàn để truyền mã thông báo truy cập thông qua các tiêu đề HTTP không?


11

Đây là dịch vụ web RESTful đầu tiên và tôi lo ngại về các vấn đề bảo mật. Có an toàn để truyền mã thông báo truy cập của tôi qua các tiêu đề HTTP không? Ví dụ:

POST /v1/i/resource HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Api-key: 5cac3297f0d9f46e1gh3k83881ba0980215cd71e
Access_token: 080ab6bd49b138594ac9647dc929122adfb983c8

parameter1=foo&parameter2=bar

Các kết nối được thực hiện trên SSL. Ngoài ra, những gì cần phải được xác định là scopethuộc tính cho mọiaccess token

Câu trả lời:


12

Nếu bạn đã truyền tiêu đề mã thông báo truy cập thông qua HTTP, thì nó sẽ dễ bị tấn công giữa chừng.

Khi bạn truyền tiêu đề mã thông báo truy cập thông qua HTTPS, thì không ai ngoài máy khách sẽ có thể thấy mã thông báo này vì yêu cầu sẽ được điều chỉnh thông qua kết nối an toàn.


4
Một máy khách cẩu thả có thể dễ bị tấn công MITM ngay cả với SSL.
ott--

Bạn có thể cung cấp một ví dụ xin vui lòng?
CodeART

Bạn không thể đảm bảo an ninh phía khách hàng nếu bạn không kiểm soát khách hàng, nhưng điều đó đúng với mọi thứ.
Matt

2
@CodeWorks Hầu hết các trình duyệt sẽ cung cấp cho người dùng cơ hội kết nối với tài nguyên HTTPS ngay cả khi chứng chỉ SSL bị sai đối với tài nguyên. Đây được cho là một trong những điều ngu ngốc nhất mà các tác giả trình duyệt đã từng làm và về cơ bản là đề nghị chấp nhận các cuộc tấn công MITM.
Ross Patterson

1
@Dan thì chứng chỉ MITM cụ thể đó nên được thêm vào danh sách chứng chỉ gốc của khách hàng. Mặt khác, bạn đã giảm cảnh báo HTTPS thành một "con sói khóc" theo nghĩa đen rằng cả A) huấn luyện người dùng của bạn mãi mãi phớt lờ nó, B) rất khó (không thể vì A) để phân biệt với một cuộc tấn công MITM thực sự, độc hại.
Nick T

8

Không có vấn đề nghiêm trọng nào trong việc chuyển mã thông báo truy cập qua các tiêu đề http vì dữ liệu được truyền được mã hóa khi SSL được sử dụng, có nghĩa là chỉ có thể hiểu được bởi khách hàng cụ thể đã thực hiện yêu cầu đó và máy chủ trả lời yêu cầu, ở giữa không có cơ hội để hiểu dữ liệu của bất kỳ bên thứ ba.

Điều khác là access tokendựa trên thời gian để họ có một cuộc sống trong một khoảng thời gian cụ thể để họ không có cơ hội sử dụng trong tương lai.


-1

Một điều cần xem xét cũng là bộ nhớ đệm.

Phần cuối của bạn có thể thấy một số cuộc gọi đến cùng một URL, với cùng tham số GET / POST nhưng mã thông báo truy cập tiêu đề khác và xem xét nội dung có thể được lưu trong bộ nhớ cache và sever cho bất kỳ phần thân nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.