2016-03-07 30 views
5

Tôi đang sử dụng thẻ <csrf/> trong tệp xml bảo mật mùa xuân của mình cho một dự án web. Và gửi mã thông báo csrf dưới dạng:Mã thông báo csrf khác nhau theo yêu cầu trong Bảo mật mùa xuân

<form action="" method="post"> 
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> 
</form> 

Nhưng khi chặn yêu cầu thông qua BurpSuite, tôi nhận được cùng một mã thông báo csrf cho mọi yêu cầu cho đến khi phiên tồn tại.

Có cách nào tôi có thể gửi mã thông báo csrf khác nhau cho mỗi yêu cầu so với mỗi phiên trong bảo mật mùa xuân hay không.

Tôi đang sử dụng 3.2.4 lọ bảo mật mùa xuân.

Trả lời

4

Thời lượng mặc định của mã thông báo CSRF là thời lượng phiên. Mã thông báo CSRF được lưu trữ trong phiên HTTP và do đó được tạo trên cơ sở mỗi phiên. Kiểm tra Spring Security documentation on CSRF để biết thêm chi tiết.

Bảo mật mùa xuân có thể được mở rộng để phù hợp với nhu cầu cá nhân, vì vậy nó có thể được mở rộng cho mục đích của bạn.

Nhưng, điều này ảnh hưởng mở rộng khả năng sử dụng:

  1. Mở ứng dụng web trong tab thứ hai sẽ gây vỡ phiên trong một hoặc cả hai tab.
  2. Nút 'quay lại' trên biểu mẫu đã gửi có thể gây ra một số lỗi lạ.
+0

trong đơn đăng ký của tôi sau khi truy cập vào ứng dụng web tôi có hai tab và dữ liệu tab đầu tiên sẽ được hiển thị theo mặc định. Vì tôi đang sử dụng Tôi có thể thấy mã thông báo csrf có trên trang này. Nếu tôi đi đến tab2 đó là một cuộc gọi GET để lấy dữ liệu và trở lại tab1, đó là một lần nữa GET gọi. Trên tab đầu tiên, hãy nhấp vào nút bất kỳ để thực hiện lệnh gọi tới chương trình phụ trợ. Tại đây, cuộc gọi bài đăng không thành công và nhận được 403 lỗi bị cấm với thông báo "Đã tìm thấy mã thông báo CSRF dự kiến. Phiên của bạn đã hết hạn". Bất kỳ trợ giúp nào ở đây – Kiran

+0

@Kiran, bạn có thể cần phải tạo một câu hỏi mới thay vì nhận xét. Bạn có lẽ nên bao gồm một số mã làm việc làm ví dụ để mọi người có thể giúp bạn gỡ lỗi vấn đề. –

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