2014-06-10 24 views
6

Tôi có ứng dụng có Bảo vệ CSRF do mô-đun apache cung cấp. Ứng dụng của tôi containt một vài trang cho phép tải lên một số tệp, trông như thế này:Bảo vệ CSRF trong ứng dụng web

<form:form method="post" action="my.controller" enctype="multipart/form-data" id="form"> 

Tất cả những thứ làm việc tốt bởi thời gian chúng tôi đã cập nhật phiên bản apache của chúng tôi từ httpd-2.2.3 để httpd-2.2.15.

Tôi đã googled một chút thời gian và thấy rằng vấn đề có thể liên quan đến thông số multipart/form-data trong biểu mẫu của tôi. Trong trường hợp này, biểu mẫu gửi không được bảo mật. Ngoài ra tôi đã phát hiện ra rằng mùa xuân có thể xử lý những thứ như trên qua MultipartFilter từ mùa xuân doc http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html#csrf-multipartfilter

Tôi mới trong CSRF thứ. Sẽ là tốt để biết whehter nó có thể sử dụng bảo vệ mùa xuân CSRF với apache cấu hình để xử lý các trường hợp như vậy.

Ngoài ra tôi đã tìm thấy cách giải quyết nơi tôi có thể vô hiệu hóa CSRF cho các URL cần thiết, như

RewriteRule /url/mycontroller.controller - [E = CSRF_IGNORE: yes]

Nhưng tôi không chắc chắn nó sẽ đúng ở đâu.

Trả lời

1

Sau đây là những gợi ý tôi có:

Hãy loại bỏ các enctype nếu không cần thiết kể từ multipart/form-data không được hỗ trợ trong một số các thư viện CSRF bao gồm CSRF Guard.

Nếu bạn đang đặt mã thông báo CSRF bằng thuộc tính ẩn, vui lòng thử gắn mã thông báo vào thuộc tính hành động. Đây là liên kết này: https://code.google.com/p/csrf-filter/

Nếu bạn vẫn gặp phải vấn đề tương tự, bạn có thể phải loại trừ URL khỏi kiểm tra CSRF.

+0

Tôi không chắc rằng tôi hiểu điểm của bạn về bộ lọc google. Vui lòng giải thích, theo cách nào đó, nó sẽ khắc phục vấn đề với tham số nhiều phần/biểu mẫu dữ liệu. Cảm ơn – fashuser

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