huaweicloud / huaweicloud-sdk-browserjs-obs

Apache License 2.0
31 stars 23 forks source link

AK,SK传给前端使用,有安全隐患吗 #13

Open aqimide1983 opened 3 years ago

aqimide1983 commented 3 years ago

后端对接IAM和OBS申请到操作文件的临时AK ,SK,secretToken, 返回给前端 -》前端使用OBS 提供的SDK,从OBS获取文件。

这种AK,SK传递的场景有安全问题吗?AK,SK存在浏览器的内存中,需要做特殊处理吗?SK是用来生成签名的吧,这个可以放在后端做吗?

noaccident commented 3 years ago

您好,这种将AK/SK暴露到前端的场景是存在安全风险的。建议让后端使用OBS SDK完成操作。

aqimide1983 commented 3 years ago

这样就需要后端提供对应的上传下载接口,又后端对接OBS获取文件,再传给前端。这样并发场景对后端服务的压力就比较大吧

noaccident commented 3 years ago

您好,后端可以创建临时URL传给前端,让前端去做上传下载操作。比如参考Java SDK https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0901.html

aqimide1983 commented 3 years ago

临时URL不是更不安全吗,被黑客劫持到了,就随意下载或者上传

noaccident commented 3 years ago

临时URL计算参数包含http method、http headers等参数(具体参考官方文档),而你前端发请求时也必须带上这些参数。比如上传上传filename1对象,那filename1和put(外加其他headers)被后端计算成临时url,前端也必须是同样的请求参数请求才可以。你看这样可以解决你的疑惑不呢?

wenxiayili commented 3 years ago

临时URL计算参数包含http method、http headers等参数(具体参考官方文档),而你前端发请求时也必须带上这些参数。比如上传上传filename1对象,那filename1和put(外加其他headers)被后端计算成临时url,前端也必须是同样的请求参数请求才可以。你看这样可以解决你的疑惑不呢?

您好 获取到URL 前端如何使用?能麻烦说明下吗?谢谢哈

FYKANG commented 1 year ago

您好,后端可以创建临时URL传给前端,让前端去做上传下载操作。比如参考Java SDK https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0901.html

需要用到断点续传功能的场景,用创建临时URL传给前端的方案,那断点checkpoint的逻辑是需要前端自己去实现吗? 前端BrowserJS包中的"断点续传上传“,只能用AK/SK的方式创建clinet

noaccident commented 1 year ago

是的,管理断点checkpoint需要前端实现,可以将断点checkpoint(存储的主要还是Etag和PartNumber对象数据)放到LocalStorage/SessionStorage里面,如果觉得有安全风险可以加密一下。

ShuaiGao commented 1 year ago

您好,后端可以创建临时URL传给前端,让前端去做上传下载操作。比如参考Java SDK https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0901.html

我参照的这个链接生成的临时URL,但在前端测试时返回了 403. https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0601.html

noaccident commented 1 year ago

如何在不暴露AKSK的条件下实现与OBS交互? https://support.huaweicloud.com/sdk-browserjs-devg-obs/zh-cn_topic_0000001171025944.html