阿里云对象存储OSS(Object Storage Service)为您提供基于网络的数据存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音视频在内的各类数据文件。
在先前的一片推文里我有写到阿里的oss云上传技术,但是,如果是外部项目,则会设计到云库的安全密钥问题,所以在这里做一下云库密钥的补充
1.后端数据代码:
主要设置介入地址,生成访问密钥,辨识访问角色,给角色自定义名称,用来区分不同的令牌,数据安全和防止一些无用信息的存储,占用存储资源,需要对角色和密钥严格把控
以Java SDK为例: package com.aliyun.sts.sample; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest; import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse; public **class** StsServiceSample { **public** static **void** main(String[] args) { // STS接入地址,例如sts.cn-hangzhou.aliyuncs.com。 String endpoint = "<sts-endpoint>"; // 填写步骤1生成的访问密钥AccessKey ID和AccessKey Secret。 String AccessKeyId = "<yourAccessKeyId>""; String accessKeySecret = "<yourAccessKeySecret>"; // 填写步骤3获取的角色ARN。 String roleArn = "<yourRoleArn>"; // 自定义角色会话名称,用来区分不同的令牌,例如可填写为SessionTest。 String roleSessionName = "<yourRoleSessionName>"; // 以下Policy用于限制仅允许使用临时访问凭证向目标存储空间examplebucket上传文件。 // 临时访问凭证最后获得的权限是步骤4设置的角色权限和该Policy设置权限的交集,即仅允许将文件上传至目标存储空间examplebucket下的exampledir目录。 String policy = "{\n" + " \"Version\": \"1\", \n" + " \"Statement\": [\n" + " {\n" + " \"Action\": [\n" + " \"oss:PutObject\"\n" + " ], \n" + " \"Resource\": [\n" + " \"acs:oss:*:*:examplebucket/*\" \n" + " ], \n" + " \"Effect\": \"Allow\"\n" + " }\n" + " ]\n" + "}"; try { // 添加endpoint。 DefaultProfile.addEndpoint("", "", "Sts", endpoint); // 构造default profile。 IClientProfile profile = DefaultProfile.getProfile("", AccessKeyId, accessKeySecret); // 构造client。 DefaultAcsClient client = new DefaultAcsClient(profile); final AssumeRoleRequest request = new AssumeRoleRequest(); request.setMethod(MethodType.POST); request.setRoleArn(roleArn); request.setRoleSessionName(roleSessionName); request.setPolicy(policy); // 如果policy为空,则用户将获得该角色下所有权限。 request.setDurationSeconds(3600L); // 设置临时访问凭证的有效时间为3600秒。 final AssumeRoleResponse response = client.getAcsResponse(request); System.out.println("Expiration: " + response.getCredentials().getExpiration()); System.out.println("**Access** Key Id: " + response.getCredentials().getAccessKeyId()); System.out.println("**Access** Key Secret: " + response.getCredentials().getAccessKeySecret()); System.out.println("**Security** Token: " + response.getCredentials().getSecurityToken()); System.out.println("RequestId: " + response.getRequestId()); } catch (ClientException e) { System.out.println("Failed:"); System.out.println("Error code: " + e.getErrCode()); System.out.println("Error message: " + e.getErrMsg()); System.out.println("RequestId: " + e.getRequestId()); } } }
2.前端密钥数据交互
前端主要是通过数据接口承接临时密钥,用来上传信息的通道,临时密钥,一般都具有实效性,需要和后端商量好实效控制以及前端的接口数据请求方式,是采用固定请求方式还是全局请求方式,这个看公司项目需求,不过我自己用的还是比较原始的笨办法,每次上传都请求,这样就不用考虑密钥的实效性,任何时候都可以请求到最新密钥。
//先引入oss基础库 import OSS from 'ali-oss'; //创建oss类方法,并设置其请求信息(类似于请求头) new OSS({ //yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为。 region: 'oss-cn-hangzhou', //从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)/。 accessKeyId: '', accessKeySecret: '', //从STS服务获取的安全令牌,有实效性,后端设置。 stsToken: '', //填写Bucket名称,一般是自己公司的上传地址接口名。 bucket: '' });
接口数据请求axios,或者fetch都可以,看自己项目技术架构设计,获取到信息分别设置oss的accessKeyId,accessKeySecret,stsToken,
3.设置完oss后的oss对象长下面这个样子
4.oss上传完成之后
将会返回阿里云库指定文件夹文件地址,阿里云的域名加上上传时自定义命名的文案名以及文件类型,改地址既可以在代码内部引用,也可直接在浏览器url当中查看地址是否正确
5.公司选择阿里云存储的优势
OSS的存储空间内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。如果您想要像使用本地文件夹和磁盘那样来使用OSS存储服务,可以通过配置云存储网关来实现。通过云存储网关提供的NFS、SMB(CIFS)、iSCSI协议,OSS的存储资源会以Bucket为基础映射成本地文件夹或者磁盘。您可以通过文件读写操作访问OSS资源,无缝衔接基于POSIX和块访问协议的应用,降低应用改造和学习成本。
网络安全入门学习路线
其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。
1.网络安全法和了解电脑基础
其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...
别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图: 学到http和https抓包后能读懂它在说什么就行。
2.网络基础和编程语言
3.入手Web安全
web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。
最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。
等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。
这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。
学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。
其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。
4.安全体系
不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。
所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
尾言
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦! 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!