2015-09-22 13 views

Trả lời

22

Nó có thể được an toàn trong các trường hợp sau đây:

  1. JWT là thời gian sử dụng một lần duy nhất
  2. các jtiexp tuyên bố có mặt trong token
  3. người nhận thực hiện đúng cách bảo vệ replay sử dụng jtiexp

nhưng trong trường hợp nó được sử dụng làm mã thông báo có thể lặp lại ly được sử dụng, ví dụ: chống lại một API sau đó cung cấp nó như là một tham số truy vấn ít được ưa thích vì nó có thể kết thúc trong nhật ký và thông tin quy trình hệ thống, có sẵn cho những người khác có quyền truy cập vào hệ thống máy chủ hoặc máy khách. Trong trường hợp đó sẽ là tốt hơn để trình bày nó như là một phần của một tiêu đề hoặc một tham số POST.

Bên cạnh đó, bằng cách sử dụng nó trong các tham số truy vấn bạn có thể chạy vào giới hạn kích thước URL trên trình duyệt hoặc máy chủ; sử dụng nó trong một tiêu đề cung cấp một số không gian hơn, sử dụng nó như là một paramter POST sẽ làm việc tốt nhất.

+2

Ngoài ra, những người dùng chưa được đào tạo có thể sao chép và dán một URL có mã thông báo, điều này có thể dẫn đến việc cướp quyền truy cập không chủ định về cơ bản. – Gray

+0

Nếu điểm cuối là REST, có nhiều trường hợp bạn phải sử dụng phương thức GET. Bên cạnh đó, nếu yêu cầu tải xuống, bạn thậm chí không thể sử dụng ajax. –

+0

Điều gì về một 'exp' <2 phút hợp lý ngắn. cộng với một chuyển hướng thứ hai (sau khi 'jwt' đã được ứng dụng thu thập)? Chuyển hướng thứ hai chỉ đơn giản là ngăn chặn các vấn đề sao chép và dán. Nếu trình duyệt của bạn bị xâm nhập, ngay cả tiêu đề cũng sẽ không giúp bạn tiết kiệm cho bạn khỏi mã thông báo bị đánh cắp. –

-2

Bạn không nên bao gồm bất kỳ thông tin bí mật nào trong URL. Bạn có thể mã hóa jwt và đưa nó vào URL bằng phương thức GET. Tuy nhiên, hãy nhớ rằng một số tin tặc có thể giải mã được, đó sẽ là vấn đề nếu nó chứa thông tin bí mật. Vì vậy, nếu nó không phải là bí mật bạn có thể bao gồm nó, nếu không sử dụng một số phương pháp khác nhau như, POST hoặc phiên.

+22

Eh ... loại yêu cầu không thực sự làm bất cứ điều gì để bảo vệ chống lại tin tặc. Tại sao họ có thể đọc yêu cầu GET của bạn chứ không phải yêu cầu POST? Nếu họ khai thác kết nối của bạn, nó trông giống nhau. Nếu đó là SSL/TLS, thì chuỗi truy vấn cũng được bảo vệ. – Gray

+2

Thông số truy vấn hiển thị trong lịch sử trình duyệt. Không hiển thị với các đối thủ từ xa, nhưng vẫn là điểm yếu bảo mật. – dnault

+0

Có liên quan đến sự cố tràn dữ liệu do vô tình, ví dụ: có mã thông báo được tìm kiếm và phân phối bởi google. Tuy nhiên, để bảo mật, mã thông báo cần phải là thời gian/hạn chế sử dụng. –

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