簡體   English   中英

如何修復 GWT 中的“沒有 httpOnly 的 Cookie 設置”安全問題

[英]How to fix "Cookie set without httpOnly" security Issue in GWT

我們已經使用 Java 和 GWT 開發了一個 Web 應用程序,現在我們正在解決以下問題:

安全問題:

  1. X-Frame-選項:
  2. X-XSS-保護:

曲奇餅:

  1. HttpOnly 和安全

從以上 3 個問題中,我們能夠解決前兩個問題,但無法解決第三個問題,因為我們正在訪問由客戶端服務器創建的 cookie,該 cookie 是用 GWT(javascript) 開發的。 所以我們認為,它不能為我們的應用程序修復或者可以忽略,因為我們修復了“X-Frame-Options”,它不允許將javascript注入我們的網站。

請給我關於我們上述問題的建議。

HttpOnly 和安全

您可以在 cookie 上設置安全標志,您仍然可以通過 JavaScript 訪問它們。 請注意,使用 GWT 的整個應用程序需要通過 https 訪問才能正常工作。

如果您的應用程序要求通過 JavaScript 讀取所有 cookie,則您不能設置http only標志。 請注意,這僅對會話或身份驗證 cookie 很重要 - 如果可以將它們設置為 http only 而讓您的其他人沒有標志,那么這就是要走的路。

請注意,X-Frame-Options 並沒有提供比正常情況更多的防止 JavaScript 注入您網站的保護。 同源策略按照標准執行此操作。 X-Frame-Options 只是阻止您的站點加載到框架集或 IFrame 中以減輕點擊劫持

GWT Cookies.setCookie方法不支持HttpOnly 如果您願意,您可以創建自己的setCookie方法來設置它。 但是,如果這樣做,您將無法從 JavaScript 讀取 cookie。

我需要將 cookie 值SameSite設置為Lax ,所以剛剛創建了以下方法:

public static native void setCookie(String name, String value, double expires, boolean secure) /*-{
    var c = name + '=' + value;
    if (expires)
        c += ';expires=' + (new Date(expires)).toGMTString();
    if (secure)
        c += ';secure;SameSite=Lax';
    $doc.cookie = c;
}-*/;

簡單! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM