[英]How to fix "Cookie set without httpOnly" security Issue in GWT
我們已經使用 Java 和 GWT 開發了一個 Web 應用程序,現在我們正在解決以下問題:
安全問題:
曲奇餅:
從以上 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.