Cookie 的 SameSite 属性
当需要iframe跨站嵌入引用时,如果需要传递Cookie,则离不开SameSite 属性。
SameSite 属性有三个值,分别是:
1、Strict 仅容许一方请求携带 Cookie,即浏览器将只发送相同站点请求的 Cookie,即当前网页 URL 与请求目标 URL 彻底一致。
2、Lax 容许部分第三方请求携带 Cookie
3、None 不管是否跨站都会发送 Cookie
现在高版本的浏览器会默认将SameSite的默认值设置为Lax,来提高防护网站的CSRF攻击。
但针对业务系统需要允许跨站传递发送Cookie时,需要将SameSite设置为None,且一定要带上Secure属性。
可以通过修改Nginx配置,
location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Request-ID $global_request_id; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cookie_path / "/; secure; HttpOnly; SameSite=None"; proxy_pass http://127.0.0.1:8080 }
(/; secure; HttpOnly; SameSite=None)解释:
Path /
指定了一个 URL 路径,这个路径必须出现要请求的资源的路径中才能够发送 Cookie 首部。好比设置 Path=/docs,/docs/Web/ 下的资源会带 Cookie 首部,/test 则不会携带 Cookie 首部。
Domain 和 Path 标识共同定义了 Cookie 的做用域:即 Cookie 应该发送给哪些 URL。
Secure属性
标记为 Secure 的 Cookie 只应经过被HTTPS协议加密过的请求发送给服务端。使用 HTTPS 安全协议,能够保护 Cookie 在浏览器和 Web 服务器间的传输过程当中不被窃取和篡改。
HTTPOnly
设置 HTTPOnly 属性能够防止客户端脚本经过 document.cookie 等方式访问 Cookie,有助于避免 XSS 攻击。

浙公网安备 33010602011771号