2012-02-29 42 views
8

Tôi gặp lỗi sau khi trang web của tôi được kiểm tra. Tôi đã phát triển trang web của mình bằng cách sử dụng các lớp jsp, servlet, java.Thêm thuộc tính 'HttpOnly' vào tất cả cookie phiên

Thiếu HttpOnly Thuộc tính trong Session Cookie

Rủi ro An ninh

Có thể ăn cắp hoặc thao tác phiên của khách hàng và các tập tin cookie, mà có thể được sử dụng để mạo danh một người sử dụng hợp pháp, cho phép hacker để xem hoặc thay đổi hồ sơ người dùng, và để thực hiện các giao dịch với người dùng đó

Nguyên nhân:

Các ứng dụng web đặt cookie phiên mà không HttpOnly thuộc tính

Nhiệm vụ Xử lý ô nhiễm:

Thêm thuộc tính 'HttpOnly' cho tất cả cookie phiên

Tôi đang chuyển mã thông báo bảo mật java như thông số ẩn trong khi nhấp vào nút gửi. Làm thế nào tôi có thể thêm thuộc tính HttpOnly này trong mã thông báo đó?

Trả lời

12

Thuộc tính HttpOnly được đặt trên Cookies và đây là (thường) được chuyển từ máy chủ đến máy khách, không phải từ máy khách đến máy chủ. HttpOnly không phải là thuộc tính mà bạn có thể đặt trên một tham số biểu mẫu hoặc biểu mẫu. Ở đây máy khách là trình duyệt và máy chủ là máy chủ Java EE chạy ứng dụng Java của bạn.

Cookie thường được tạo bởi máy chủ, được chuyển tới trình duyệt và sau đó được trả về. Bây giờ có thể tạo và thao tác Cookies bằng JavaScript có thể hữu ích nhưng cũng có thể là lỗ hổng bảo mật. Vì vậy, an HttpOnly Cookie is only accessible by the server, hoặc nói cách khác nó không thể truy cập từ JavaScript phía máy khách để bảo vệ trang web của bạn khỏi một số dạng tấn công XSS. Vì vậy, trình duyệt sẽ lưu trữ và trả về một Cookie HttpOnly nhưng nó sẽ không thay đổi nó hoặc cho phép bạn tạo nó trên máy khách; một HttpOnly Cookie phải được tạo trên máy chủ.

Nếu bạn đang sử dụng JSP, có khả năng máy chủ của bạn sẽ tự động tạo Cookie để quản lý phiên cho bạn; đây là cookie mà bạn cần đặt thuộc tính HttpOnly. The method to set HttpOnly on your SESSIONID Cooke will be container specific.

+0

okay nhưng máy chủ và máy khách này là gì? bạn có thể vui lòng xây dựng thêm ít hơn – Tom

+0

@tom - đã mở rộng câu trả lời nhiều hơn một chút không. Nó có thể là giá trị sau các liên kết trong câu trả lời để có thêm chi tiết. –

+0

có cảm ơn cũng chỉ là một nghi ngờ nữa: nếu tôi sẽ làm bất kỳ sửa đổi bên trong tomcat sau đó tôi sẽ phải thực hiện bất kỳ sửa đổi ở phía khách hàng quá cho thuộc tính httpOnly? – Tom

2

bạn có thể đặt thuộc tính "HttpOnly" trong cookie phiên không?

tôi tìm thấy mã này để làm điều này trên https://www.owasp.org/index.php/HttpOnly

<session-config> 
<cookie-config> 
    <http-only>true</http-only> 
</cookie-config> 
<session-config> 
1

Sử dụng <http-only> thuộc tính để thiết lập HttpOnly trong file web.xml.

<session-config> 
<cookie-config> 
    <http-only>true</http-only> 
</cookie-config> 
<session-config> 
Các vấn đề liên quan