我使用在tomcat 7.0.77上運行的struts2框架。 在通用過濾器,我已經添加SameSite餅乾與下面的代碼:防止CSRF請求 - SameSite不起作用
Cookie cookie = new Cookie("SameSite", "strict");
cookie.setMaxAge(-1);
res.addCookie(cookie);
我使用的是最新版本的Chrome(版本60.0.3112.90(正式版本)(64位))的測試,如果它可以避免CSRF。
假設要保護的服務器是192.168.1.100。與其他服務器上運行192.168.1.101,有一個非常簡單的test.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=
, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<a href="https://192.168.1.100/home.html">Click me!</a>
</body>
</html>
於是,我打開Chrome標籤和登錄192.168.1.100。
然後我打開另一個Chrome標籤訪問https://192.168.1.101/test.html和 點擊「點擊我!」。
我期待的是,當我點擊這個「點擊我!」時,鏈接將我重定向到https://192.168.1.100/home.html,但不應該傳遞cookie。所以我需要再次登錄。
但實際情況是我仍然處於登錄狀態,並且所有cookie都已通過,我可以從Chrome開發人員工具中看到。
真的很困惑,我錯了,感謝你的幫助!