2012-08-01 31 views
5

Tôi đã thực hiện rất nhiều việc googeling và không thể tìm thấy câu trả lời. Tôi đã cố gắng thiết lập như sau trong file web.xml trong cuộc chiến không có tác động:Cách gắn cờ cookie phiên là an toàn (chỉ https) trong tomcat 6

<session-config> 
     <session-timeout>60</session-timeout> 
     <cookie-config> 
      <http-only>true</http-only> 
      <secure>true</secure> 
     </cookie-config> 
    </session-config> 

Thêm useHttpOnly trong tomcat tập tin context.xml hoạt động để hạn chế cookie để http chỉ nhưng tôi vẫn cần phải làm cho họ đảm bảo .

Trả lời

4

Bạn không phải làm gì cả. Miễn là yêu cầu bắt đầu phiên là https Tomcat sẽ đánh dấu cookie phiên là secure.

Tôi cũng đã xem xét liệu có bất cứ điều gì chính thức ghi lại sự thật đó nhưng tôi không thể tìm thấy nó. Nhưng đó là hành vi của ít nhất là Tomcat 6.0.32 trở lên.

Đây là mã từ org/apache/catalina/connector/Request.java đó, ở phần cuối của phương pháp, kiểm tra để xem nếu yêu cầu là an toàn và nếu nó là, đặt secure cờ trên cookie:

/** 
* Configures the given JSESSIONID cookie. 
* 
* @param cookie The JSESSIONID cookie to be configured 
*/ 
protected void configureSessionCookie(Cookie cookie) { 
    cookie.setMaxAge(-1); 

    Context ctxt = getContext(); 

    String contextPath = null; 
    if (ctxt != null && !getConnector().getEmptySessionPath()) { 
     if (ctxt.getSessionCookiePath() != null) { 
      contextPath = ctxt.getSessionCookiePath(); 
     } else { 
      contextPath = ctxt.getEncodedPath(); 
     } 
    } 
    if ((contextPath != null) && (contextPath.length() > 0)) { 
     cookie.setPath(contextPath); 
    } else { 
     cookie.setPath("/"); 
    } 

    if (ctxt != null && ctxt.getSessionCookieDomain() != null) { 
     cookie.setDomain(ctxt.getSessionCookieDomain()); 
    } 

    if (isSecure()) { 
     cookie.setSecure(true); 
    } 
} 

UPDATE: bạn bạn có thể tự mình tự mình cài đặt bằng cách sử dụng bộ lọc, v.v. bạn có thể kiểm tra ví dụ từ set 'secure' flag to JSESSION id cookie

+0

Chỉ muốn xác nhận rằng: Xem cookie phiên trong công cụ trình duyệt bạn chọn (Safari Webinspector trong trường hợp của tôi)) sẽ cho bạn biết rằng cookie thực sự là một cookie chỉ bảo mật –

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