首页
学习
活动
专区
圈层
工具
发布

JavaScript 结合 Go 实现 临时密钥(STS)

背景介绍最近有个项目,需要通过网页上传文件到对象存储中,在查看COS快速入门时,文档建议使用获取临时密钥:由于固定密钥放在前端会有安全风险,正式部署时我们推荐使用临时密钥的方式,实现过程为:前端首先请求服务端...,服务端使用固定密钥调用 STS 服务申请临时密钥(具体内容请参见 临时密钥生成和使用指引 文档),然后返回临时密钥到前端使用。...后端采用gin框架,这里假设绑定到URL地址为/api/sts,r.POST("/sts", tencentSTS)这段代码授予了临时密钥所有的权限,实际使用时,建议按照最小权限原则进行授权,详细权限可以参考...c.JSON(200, res)}}const cos = new COS({ getAuthorization: function (options, callback) { // 异步获取临时密钥...SDK :https://github.com/tencentyun/qcloud-cos-sts-sdk // STS 详细文档指引看:https://cloud.tencent.com/document

76230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用STS临时密钥服务快速搭建直传页面的实践

    简介 为了实现权限分离,提供更细隔离度的权限控制,有效的控制帐号生效周期,本文通过腾讯云CAM产品的STS(临时访问凭证)来实现部署,调试,验证等一系列的操作体验。...临时密钥 临时密钥(临时访问凭证) 是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。 COS API 可以使用临时密钥计算签名,用于发起 COS API 请求。...用户的服务器 通过 CAM STS 接口请求临时密钥。 CAM 返回临时密钥给用户服务器,该临时密钥有效期最长是 2 小时。 该接口属于 CAM 侧的,所以需要客户服务器有能够访问公网的能力。...用户不需要每次上传、下载操作都调用一次临时密钥STS接口,同一个临时密钥申请后在有效时间内都可以使用。 客户服务器下发临时密钥给客户端。...访问之前已经部署好的临时密钥 STS 服务 URL 地址: http://42.194.201.209:3333/sts 返回的临时密钥信息如下 { "expiredTime": 1592792349

    3.2K61

    利用STS临时密钥服务快速搭建直传页面的实践

    为了实现权限分离,提供更细颗粒度的权限控制,有效的控制帐号生效周期,本文通过腾讯云 CAM 产品的 STS(临时访问凭证)来实现部署,调试,验证等一系列的操作体验。...1、临时密钥 临时密钥(临时访问凭证) 是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。 COS API 可以使用临时密钥计算签名,用于发起 COS API 请求。...(2) 用户的服务器通过 CAM STS 接口请求临时密钥。 (3) CAM 返回临时密钥给用户服务器,该临时密钥有效期最长是 2 小时。...用户不需要每次上传、下载操作都调用一次临时密钥 STS 接口,同一个临时密钥申请后在有效时间内都可以使用。 (4) 客户服务器下发临时密钥给客户端。...访问之前已经部署好的临时密钥 STS 服务 URL 地址: http://42.194.201.209:3333/sts 返回的临时密钥信息如下 { "expiredTime

    4.1K20

    利用STS临时密钥服务快速搭建直传页面的实践

    简介 为了实现权限分离,提供更细隔离度的权限控制,有效的控制帐号生效周期,本文通过腾讯云CAM产品的STS(临时访问凭证)来实现部署,调试,验证等一系列的操作体验。...临时密钥 临时密钥(临时访问凭证) 是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。 COS API 可以使用临时密钥计算签名,用于发起 COS API 请求。...用户的服务器 通过 CAM STS 接口请求临时密钥。 CAM 返回临时密钥给用户服务器,该临时密钥有效期最长是 2 小时。 该接口属于 CAM 侧的,所以需要客户服务器有能够访问公网的能力。...用户不需要每次上传、下载操作都调用一次临时密钥STS接口,同一个临时密钥申请后在有效时间内都可以使用。 客户服务器下发临时密钥给客户端。...访问之前已经部署好的临时密钥 STS 服务 URL 地址: http://42.194.201.209:3333/sts 返回的临时密钥信息如下 { "expiredTime": 1592792349

    6.7K7961

    腾讯云 COS 访问方法

    SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)安全凭证服务...(Security Token Service,STS)腾讯云提供的临时凭证的服务,调用其接口能获得临时访问凭证域名为 sts.tencentcloudapi.com,可以直接调用云 API,也可以通过...通常流程为在客户端调用后端自己的 STS 接口,后端使用永久密钥调用腾讯云 STS 服务得到临时密钥并返回给客户端,客户使用临时密钥访问资源。...// sts.Scheme("http"), // 设置协议, 默认为https,公有云sts获取临时密钥不允许走http,特殊场景才需要设置http) // 策略概述 https://...临时密钥是由 安全凭证服务(Security Token Service,STS) 提供的临时访问凭证,由 TmpSecretId、TmpSecretKey 和 Token 三部分组成!

    4.6K20

    OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)

    text{上传耗时} = \frac{\text{文件大小}}{\min(\text{客户端带宽}, \text{服务端带宽})} \times 2 \\ &\text{存储成本} = \text{临时存储...临时凭证+前端分片上传的混合架构: 图解:架构通过业务服务器颁发临时凭证,客户端直接与OSS交互,同时利用CDN提升传输效率。...关键实现技术拆解 (1)STS动态授权方案 临时凭证生成核心逻辑: def generate_sts_token(user_id): policy = { "Version":...(2)安全防护体系 多维度防护策略: 风险类型 防护措施 实施效果 凭证泄露 动态STS+IP绑定+短有效期 泄露窗口<30分钟 恶意上传 文件类型校验+内容嗅探 拦截率99.7% 数据篡改 分片MD5...P99耗时 100MB 99.2% 12.3s 18.7s 1GB 98.7% 124.5s 187.2s 10GB 97.1% 1324.8s 1562.4s (2)核心优势总结: 安全性提升:临时凭证使攻击面减少

    38910

    Redis 在 IM 系统中的 5 种应用场景:从缓存到去重

    (临时凭证管理)应用场景文件上传需要阿里云OSS临时凭证(STS)。...实现方案使用RedisString结构缓存STS凭证,设置1小时过期时间(阿里云STS凭证有效期通常也是1小时)。...returnnull;}}//缓存STS凭证(1小时过期)privatevoidcacheAliOssSts(AliOssStsDtoaliOssStsDto){if(aliOssStsDto!...(AQRedisKeyPrefix.ALI_OSS_STS,AliOssStsDto.class);}}技术要点1.缓存时间:1小时,与STS凭证有效期一致2.全局共享:所有用户共享一个STS凭证(Key...30分钟平衡缓存命中率和数据一致性OSS凭证1小时与STS凭证有效期一致房间信息永久房间数据需要持久化房间号映射永久映射关系需要持久化消息去重永久需要长期去重七、总结Redis在IM系统中的5种应用场景

    11600

    云时代的身份安全:别再靠“密码123456”扛风险了

    你一个权限没配好,后果可能是这样的:S3桶公开→数据被人爬走云主机凭证泄露→整个账单被挖矿打爆凭证权限太大→一个脚本误删生产环境开发同事离职→你忘记注销他的访问凭证云时代的访问方式变了,风险也成倍放大了...在云平台上,常见的身份包括:用户(User)角色(Role)服务账号(ServiceAccount)临时凭证(STSToken)设备身份(比如IoT)不同身份在云里扮演不同的角色。...安全方式应该是:身份→角色→临时凭证(STS)→自动轮转示例(伪代码):展开代码语言:PythonAI代码解释importboto3sts=boto3.client("sts")creds=sts.assume_role...Credentials"]print(creds["AccessKeyId"])print(creds["SecretAccessKey"])print(creds["SessionToken"])特点:临时凭证自动过期权限严格隔离日志可追踪到具体服务这比写死在代码里的...“临时授权+自动过期”是最理想模式。②人机分离(Human≠Machine)人用人类账号服务用服务账号千万不要混着来。

    14100

    AQChat 即时通讯系统 - 技术深度分析文档

    room:roomData:{roomId}Hash房间信息、成员列表永久AQChat:room:message:{roomId}Set消息ID去重永久AQChat:aliOssStsStringOSS临时凭证...关键代码位置:aq-chat-im/src/main/java/com/howcode/aqchat/handler/impl/GetStsCmdHandler.java实现流程:客户端请求获取OSS临时凭证...(STS)服务端调用阿里云STS服务获取临时AccessKey返回临时凭证给客户端客户端直接上传文件到OSS上传成功后,将OSSURL作为消息内容发送技术要点:临时凭证:使用STS临时访问凭证,避免暴露主账号密钥凭证缓存...新增命令只需实现ICmdHandler接口责任链模式:AI处理使用责任链,易于扩展新的AI服务MQ解耦:业务逻辑与消息处理解耦,支持水平扩展4.4安全性设计XSS防护:消息内容过滤HTML标签(SafeUtil)临时凭证...:文件上传使用STS临时凭证,避免密钥泄露权限校验:每个命令处理器都验证用户登录状态和房间权限五、补充说明5.1项目规模代码量:约5000+行Java代码模块数:5个独立模块命令类型:30+种消息命令AI

    10610

    微信小程序上传图片到腾讯COS存储桶实战

    我用的是前一种,不使用SDK简单地上传图片,实现流程:首先小程序发送请求到中间层安全凭证服务(Security Token Service,STS)获取临时密钥给到前端,接着前端计算签名,然后凭签名再将图片上传到腾讯...(临时密钥有效时间短(30min - 36h),适用于前端直传等临时授权场景,相比永久密钥,安全性更高。) 腾讯提供的STS服务有很多语言,我选了PHP。...https://www.jb51.net/article/120427.htm, PHP服务布置成功后把腾讯提供的sts.php,sts.js, qcloud-sdk-sts.php三个文件放在中间层的根目录...wwwroot中,这样STS服务就可以用了。.../config');//config.js腾讯提供,改一下sts.php网址和Bucket和Region就可以。

    4.4K30

    云基础设施 DevSecOps 基线方法论

    真正的安全从来不是“加几条扫描规则”“多装一个防火墙”这种被动补丁,而是一条贯穿整个基础设施生命周期的隐形长线:从 IaC 被写下的那一刻,到凭证被动态颁发、到运维访问被代理、到所有日志被自动采集……安全必须自然发生...凭证:所有权限都是临时的,密钥永不落地长期 AccessKey 是云环境最大的毒瘤:极易泄漏难以回收无法追溯所有凭证都必须是短期、自动轮换、可撤销的。...各环境的推荐实践AWS:STS AssumeRoleGCP:Workload Identity Federation阿里云:RAM + STS 扮演自建 / VPS / IDC:Vault Dynamic...SecretsSPIFFE / SPIREJWT STS凭证短期化是安全走向工程化的关键一环。...跨云 / 自建统一能力对照表能力能跨云吗能在自建环境复现吗为什么重要统一 IdP✔✔DevSecOps 权限体系的“根”临时凭证✔✔密钥不落地,否则迟早泄漏零 SSH✔✔消除最大的不透明入口统一日志格式

    14810

    STS 创建 Maven 项目填坑

    用 STS 创建 Maven 项目并不复杂,只是其中有一些坑在里面,我在解决这些坑的时候发现很多人都遇到了相同的问题,因此把创建的步骤记录在这里。...创建项目 启动 STS ,点击菜单的“ File ”->“ New ”->“ Maven Project ”,出现如下图的窗口。 ?   ...如何修改这里呢,在 STS 中点击“ Navigator ”,打开项目的“ .settings ”下的“ org.eclipse.wst.common.project.facet.core.xml ”文件...很多书上介绍 web.xml 文件时根本没有这个前缀,但是 STS 生成的 web.xml 文件中是有的,按照书上的配置的话,就需要人为的在添加这个前缀了。...OK,基本上到了这里 STS 建立的 Maven 项目的一些坑就都解决了,自己试试吧!

    1.7K20
    领券