2013-08-12 17 views
9

Tôi đang cố gắng triển khai antiforgerytokens cho các yêu cầu ajax của ứng dụng góc.Suốt đời và sử dụng nhiều chương trình AntiForgeryToken?

Có thời gian sống gắn liền với thuốc chống đông không? Nếu tôi mở ứng dụng trong một thời gian dài trong trình duyệt web mà không chạm vào nó, hãy nói trong một tháng. Yêu cầu ajax có bị lỗi do mã thông báo cũ không?

Mã thông báo có thể được sử dụng lại cho nhiều cuộc gọi không? Tôi có thể giữ một mã thông báo ở đâu đó trong trang và truy xuất nó cho tất cả các cuộc gọi ajax không?

+0

Một câu hỏi hay, không biết tại sao không có phiếu bầu nào. –

Trả lời

0

Yêu cầu ajax có bị lỗi do mã thông báo cũ không?

Mã thông báo có thể được sử dụng lại cho nhiều cuộc gọi không? Không

Tuy nhiên, câu hỏi hay hơn là tự hỏi tại sao bạn sử dụng mã thông báo chống ăn mòn với AJAX ngay từ đầu. Nếu bạn đang sử dụng AJAX, bạn đang sử dụng một API, ngay cả khi bạn chưa chính thức hóa nó như vậy (chỉ là một tập hợp các hành động/bộ điều khiển đang sử dụng cho AJAX/giao tiếp không đầu khác). Mã thông báo chống phân mảnh không hoạt động tốt với API vì 1) API thường là cho phép truy cập của bên thứ ba và 2) ngay cả khi chúng không, có những cách tốt hơn để bảo mật chúng.

Nếu bạn muốn đảm bảo rằng chỉ trang web của bạn mới có thể truy cập "API" của bạn, hãy triển khai xác thực HTTP hoặc một số lược đồ khác để xác thực yêu cầu của bạn đối với "API". Đó là cách bạn cho phép các phiên chạy dài sẽ không bị lỗi.

1

API thực sự được cho là do bên thứ ba tiêu thụ, nhưng những gì liên quan đến giao diện Trang đơn với AFT?

Tôi lo ngại rằng họ vẫn yêu cầu AFT để ngăn chặn các lỗi CSRF. Và đây là cách tốt để sử dụng chúng trong Ajax requests.

Mã thông báo Antiforgery được tạo mỗi phiên và vẫn còn trong dữ liệu phiên cho đến khi hết hạn. Đối với mã thông báo phiên mới sẽ được tạo. Và có, mã thông báo đơn lẻ có thể được sử dụng lại nhiều lần trong cùng một phiên.

Vui lòng kiểm tra liên kết tôi đã thêm, có ví dụ về cách mã thông báo có thể được lấy cho các yêu cầu Ajax.

+0

Tôi đã xem trang đó trước đó và triển khai nó tương tự. Trong trường hợp của tôi, tôi sẽ hiển thị mã thông báo trong "trang chính" (trong trường hợp của tôi sẽ là trang chính từ góc nhìn). Tôi đang sử dụng lại cùng một mã thông báo. Tuy nhiên, trong một số trường hợp hiếm hoi, có lỗi xảy ra đối với người dùng này. Tôi đoán nó xảy ra khi sử dụng nút quay lại và sử dụng lại một trang có một antiforgerytoken cho người dùng chưa được xác thực. –

+0

Tôi đang truy cập antiforgerytoken bằng jquery. Tôi đã xem xét một dịch vụ web có thể được truy cập để truy xuất antiforgerytoken. Nó có vẻ ngược lại, nhưng mặt khác nó giống với việc truy xuất một trang nhưng không có phần còn lại của trang. –

+0

Nếu có một phương pháp để truy xuất mã thông báo, thì mục đích của mã thông báo đó là gì nếu có thể dễ dàng thu được thông qua csrf. Cân nhắc tải trước một số trang có mã thông báo trong nền và giữ mã thông báo trên trang của bạn. –

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