天天看点

java cookie secure_加密会话(SSL)Cookie 中缺少 Secure 属性

加密会话(SSL)Cookie 中缺少 Secure 属性

java cookie secure_加密会话(SSL)Cookie 中缺少 Secure 属性

AppScan 发现加密会话(SSL)使用的是没有“secure”属性的 cookie。

因为不想修改后端代码,因此希望能从nginx上将其修复。

java cookie secure_加密会话(SSL)Cookie 中缺少 Secure 属性

没修复之前

没修复之前,这个cookie是没有secure参数的,如上图,上面的那些secure则是我在添加了一个 add_header Set-Cookie “Secure”; 获得的,虽然网上大部分的教程都是这样的,但是不符合此次修复的要求,因此没有什么用途

java cookie secure_加密会话(SSL)Cookie 中缺少 Secure 属性

搜索过程中,发现一篇文章能加上这个参数:

在 nginx 的 location 中配置

# 只支持 proxy 模式下设置,SameSite 不需要可删除,如果想更安全可以把 SameSite 设置为 Strict

proxy_cookie_path / "/; httponly; secure; SameSite=Lax";

参考示例

server {

listen 443 ssl http2;

server_name www.cat73.org;

server {

listen 443 ssl http2;

server_name www.cat73.org;

ssl_certificate /etc/letsencrypt/live/cat73.org/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/cat73.org/privkey.pem;

ssl_trusted_certificate /etc/letsencrypt/live/cat73.org/chain.pem;

add_header X-XSS-Protection "1; mode=block";

add_header X-Frame-Options SAMEORIGIN;

add_header Strict-Transport-Security "max-age=15768000";

location / {

root /var/www/html;

}

location /api {

proxy_pass http://localhost:8080;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

######### 在这里设置 #########

proxy_cookie_path / "/; httponly; secure; SameSite=Lax";

}

}

之后再查看cookie上的参数是否存在,成功

java cookie secure_加密会话(SSL)Cookie 中缺少 Secure 属性

修复后效果图