【bug记录】This attempt to set a cookie via a Set-Cookie header was blocked because it had the “Secure“

2023-11-14

问题出现场景

最近在使用浏览器访问一个登录页面时会一直发生302重定向请求,然后f12看到浏览器的访问页面上有如下警告
在这里插入图片描述

错误原因

错误原因为:尝试通过Set-Cookie头设置具有“secure”属性的cookie,但未通过安全连接接收,因此被阻止。因为具有“secure”属性的cookie只能通过安全的https连接传输,所以浏览器阻止了此操作。

查看了一下访问协议,确实是使用了http协议地址。然后查看这个接口对于cookie的设置。这个接口是登录相关的接口,将sid等信息填入cookie,然后查询发现是shiro框架对其进行了配置。

shiro.cookie-secure = true

shiro.cookie-secure 是 Apache Shiro 框架的配置选项之一,用于控制生成的 Cookie 是否应该标记为 “Secure”。“Secure” Cookie 是一种安全的 Cookie,只能在通过 HTTPS 连接传输时才会被浏览器发送。这有助于确保敏感信息只在加密的连接中传输。
当你将 shiro.cookie-secure 设置为 true 时,Apache Shiro 会生成 ‘Secure’ Cookie,这意味着浏览器只会在通过 HTTPS 连接发送请求时将这些 Cookie 包括在请求中。这增加了敏感数据的安全性。

问题修改

将shiro.cookie-secure置为false即可

shiro.cookie-secure = false

正常访问结果如下:可以看到http协议下的sid已正常携带
在这里插入图片描述

cookie-secure相关补充

servlet

对于类似的报错原因,应该去查询关于cookie的设置,常见的设置可以是通过servlet方式

import javax.servlet.http.Cookie;

// 创建一个Cookie
Cookie cookie = new Cookie("myCookie", "cookieValue");

// 设置Secure属性为true,表示这是一个Secure Cookie
cookie.setSecure(true);

// 设置Cookie的其他属性,如路径、域、过期时间等
cookie.setPath("/"); // 设置Cookie的路径
cookie.setDomain(".example.com"); // 设置Cookie的域
cookie.setMaxAge(3600); // 设置Cookie的有效期(秒)

// 将Cookie添加到HTTP响应中
response.addCookie(cookie);

想要通过http访问,则需要将cookie.setSecure(false);

springSecurity

Spring Security也提供了类似的配置选项来控制生成的Cookie的安全属性,Spring Security中配置Cookie的相关属性通常涉及到Remember-Me功能以及Session管理。以下是一个例子,展示了如何配置Remember-Me Cookie的secure属性:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/public/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .rememberMe()
                .key("my-remember-me-key") // 设置Remember-Me Cookie的密钥
                .rememberMeCookieName("remember-me-cookie") // 设置Remember-Me Cookie的名称
                .tokenValiditySeconds(3600) // 设置Remember-Me Cookie的有效期
                .useSecureCookie(true); // 设置Remember-Me Cookie是否为安全Cookie
    }
}

想要正常访问,需要设置.useSecureCookie(false);

总之对于此问题要找寻cookie设置相关

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【bug记录】This attempt to set a cookie via a Set-Cookie header was blocked because it had the “Secure“ 的相关文章

随机推荐

  • 【PHP小皮】使用教程

    博主介绍 主攻JAVA 因不可逆的原因 被迫学PHP 刚人门多多关照 文章目录 前言 一 官网下载小皮 二 使用步骤 1 打开小皮页面 2 使用步骤如下 总结 前言 随着快爱情的发展 php也不是那么的繁琐 下载集成工具小皮就可以省去很多时
  • 史上最全的maven的pom.xml文件详解

    本文转自 https www cnblogs com hafiz p 5360195 html 原作者 阿豪聊干货
  • Flask后端笔记(二)request、bort、响应、session、钩子

    Flask后端笔记 获取请求参数 上传文件 with的使用 bort函数与自定义异常处理 abort函数 自定义异常处理 返回的响应数据 元组 make response json模块的使用 使用jsonify返回json数据 重定向 设置
  • 最新的单机Lustre文件系统的安装

    1 单机Lustre的搭建 主机名 IP地址 内存 添加的共享磁盘大小 Centos7 9 test机 192 168 10 30 24 1G 20G 1 安装E2fsprogs包 下载OSS服务器所需要的包 E2fsprogs包只是在Ex
  • 该linux文件目录的owner权限

    sudo chown R admusr 要改的用户名 admusr path
  • “过早优化是万恶之源”这句话的源头

    来自于一篇大神的论文 而且原意没有一句话那么简单 Premature optimization is the root of all evil Programmers waste enormous amounts of time think
  • python 下载安装

    在下载Python之前我们要明确我们的开发环境的操作系统 这里我们选择Windows Python下载步骤 Python安装步骤 测试安装是否成功 注意 如果输入python后 没有出现如图效果 而是显示 python 不是内部或外部命令
  • .NET Core 获取自定义配置文件信息(多种方式)

    引用 Microsoft AspNetCore App 元包或将包引用添加到 Microsoft Extensions Options ConfigurationExtensions 包 简而言之 直接可以用 Appsetting json
  • ES分布式搜索引擎

    初始化RestClient 引入依赖 因为SpringBoot默认的ES版本是7 6 2 所以我们需要覆盖默认的ES版本
  • Linux用nohup后台运行python程序及停止

    在Ubuntu上用python flask写了一个后端代码 每次运行要CMD先远程连上服务器 然后python xxx py启动 这样操作会让cmd窗口被占用 没办法进行其他操作 ls cd这种 如果把窗口关了 程序就停止了 看了网上的例子
  • CTFSHOW【萌新计划】Writeup

    CTFSHOW 萌新计划 web1 萌新计划 web2 萌新计划 web3 萌新计划 web4 萌新计划 web5 萌新计划 web6 萌新计划 web7 萌新计划 web8 萌新计划 web9 萌新计划 web10 萌新计划 web11
  • 《我的眼睛--图灵识别》第五章:基础:形状识别

    我的眼睛 图灵识别 第五章 基础 形状识别 1 图形认识 三角形 三角形是由同一平面内不在同一直线上的三条线段 首尾 顺次连接所组成的封闭图形 三角形按边分有不等边三角形 等腰三角和等边三角形 按角分有直角三角形 锐角三角形 钝角三角形等
  • antd的Form表单控制实例的使用

    Form表单的控制实例 一 业务常景 二 使用Form表单的实例来解决 一 业务常景 遇到一种业务场景 即一个简单的Modal框 Form的一个组合 仔细思考了一下 和我们平时直接使用Form表单还是有一定的区别 我们通常是通过给Form表
  • springcloudAlibaba 链路追踪SkyWalking

    一 链路追踪SkyWalking简介 在大型系统的微服务化构建中 一个系统被拆分成了许多模块 这些模块负责不同的功能 组合成系统 最终可以提供丰富的功能 在这种架构中 一次请求往往要涉及到多个服务 互联网应用构建在不同的软件模块集上 这些软
  • 关调度与关中断

    关调度与关中断 关中断与关调度是两种进入临界区的方式 它们有各自的使用环境 最近在研究 ucos III 的源代码时发现 ucos III 中有对临界区的优化 以关调度来代替关中断的方式工作 系统可以在特定的情况下用关调度的方式来替代关中断
  • 数据可视化之Seaborn(1)

    文章目录 什么是Seaborn seaborn提供的一些特点 Seaborn的基本使用 1 安装seaborn 2 导入seaborn库并导入Seaborn内置数据集 3 设置画图空间风格 4 设置子图风格 5 去除图脊 边框 6 设置内容
  • 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。

    分数 题目内容 设计一个表示分数的类Fraction 这个类用两个int类型的变量分别表示分子和分母 这个类的构造函数是 Fraction int a int b 构造一个a b的分数 这个类要提供以下的功能 double toDouble
  • 第五章:数据库完整性

    数据库完整性 文章目录 5 1参照完整性 5 1 1实体完整性定义 5 1 2实体完整性的违约处理和检查 5 2参照完整性 5 2 1参照完整性定义 5 2 2参照完整性的违约处理和检查 5 3用户自定义的完整性 5 3 1属性上的约束条件
  • Python - OpenCV实现摄像头人脸识别(亲测版)

    要使用Python 3和OpenCV进行摄像头人脸识别 您可以按照以下步骤进行操作 0 安装OpenCV软件 去官网直接下载安装即可 如果是C 使用OpenCV 需要使用编译源码并配置环境变量 1 安装OpenCV库 在命令行中输入以下命令
  • 【bug记录】This attempt to set a cookie via a Set-Cookie header was blocked because it had the “Secure“

    问题出现场景 最近在使用浏览器访问一个登录页面时会一直发生302重定向请求 然后f12看到浏览器的访问页面上有如下警告 错误原因 错误原因为 尝试通过Set Cookie头设置具有 secure 属性的cookie 但未通过安全连接接收 因