假设用户已经登录系统。用户执行了一些活动,并基于此收到一封电子邮件。电子邮件具有一个链接,如果用户单击该链接将被重定向到适当的屏幕。 但是由于某种原因,当用户尝试使用超链接时,他们从系统中注销并不得不再次登录。
调试后,我们发现apache conf文件中存在以下规则。
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=strict
删除上述行后,一切正常。
所以我试图找出背后的原因(即,如果上述规则到位,为什么会发生会话问题)。我还要如何在不影响会话的情况下添加该规则,因为根据安全指南,仅需要http和安全cookie。
答案 0 :(得分:1)
我遇到了同样的问题,并使用以下代码。
注意:Content-Security-Policy用于过滤应允许访问的数据服务器类型,并且可以根据需要删除该行。
#fixing vulnerability issues
TraceEnable Off
Header set X-Frame-Options SAMEORIGIN
Header always edit Set-Cookie (.*) "$1; HTTPOnly"
Header always edit Set-Cookie (.*) "$1; Secure"
Header set Content-Security-Policy "frame-ancestors 'none'; default-src 'self' http://onecrm; script-src 'unsafe-inline' 'unsafe-eval' *; connect-src *; img-src data: *; style-src 'unsafe-inline' *;"
更多阅读内容:Set-Cookie,Cookies for dummies,SameSite cookie attribute
答案 1 :(得分:1)
您需要将SameSite=strict
更改为SameSite=lax
(或将其删除,因为lax
是默认值)
strict
值将阻止Cookie由 浏览器可以在所有跨站点浏览上下文中找到目标站点,甚至 遵循常规链接时。
...默认的
lax
值在安全性之间提供了合理的平衡 和可用性,以维护用户的登录状态 用户从外部链接到达后的会话。