-
Notifications
You must be signed in to change notification settings - Fork 738
02:学习前的一些指引
“学习安全需要掌握什么基础知识?,需要学编程吗?,是先学编程还是先学安全?”
答案是肯定的。你不仅要学编程,你还要学系统,学网络,学数据库,学中间件,学....是一件没有止境的事情。
搞安全,分为很多方向。每个方向所负责的事情是不同的。
以现在甲方互联网公司的安全团队职位来划分,信息安全一般可以分为如下几个方向:
注:这是一个比较常见的职位划分,并不是所有的公司都是按照图上的架构来划分的,当然有些大平台或者行业可能还会有一些其他的角色,比如二进制安全,工控安全,硬件安全等,其次,除了甲方外,在乙方公司,安全的角色又有所不同,这里不再一一展开。
说这些,主要是为了让大家(特别是还没有走上职场的同仁)对信息安全工作中所涉及的技术范围从”职位划分“这个角度有一个认识,其次是向大家指明本文所涉及的技术范围重点集中在”应用安全“里面的"web安全技术"。
既然是”web安全“,那我们先得搞懂跟”web“相关的基础知识,本文不打算给大家普及这些基础知识,而只是给出一些指引。以下这些内容我认为是必须要掌握的基础:
1.基础的前端语言:html,css,javascript;
2.基础的后端语言,后端语言很多,建议先以PHP、python为目标进行学习,在逐步根据兴趣或者工作所需涉猎其他语言;
3.数据库,直接以mysql为例进行学习;
4.http/https协议原理;
以上,1,2,3, 4到底需要学习到什么深度呢,按理说是越深越好,但站在”安全“而非”专业开发“的角度,比较合适和有效的一个程度是:能够使用1,2,3涉及的技术自己写一个自己的网站(至少包括:用户注册,登录,注销,以及一些业务功能,比如文章发布,留言发布,用户权限控制等),而完成这个东西后,你至少对下面这些是胸有成竹了:
1.cookie,session原理;
2.前端数据输入,后端数据接收,以及数据入库处理的整个流程;
3.前端数据输出,后端数据读取的整个流程;
4.web服务的基础架构;
5.还有一些常见的业务逻辑,比如验证码,权限控制等;
也即是在做安全测试时,你提交一个请求,你闭着眼睛想一下,就能够在心中还原这个请求整个的一个数据流和后端处理链路。
千万不要觉得这些东西麻烦,以计算机专业大二的学生为例,最多2个月”认真”的学习就可以拿下这些东西,而这些东西的沉淀会让你在“web安全”的学习上顺利很多。
现在很多网站提供免费的且质量很高的这些基础课程,比如慕课学院,edu.51cto.com等。去找一个基础课程,最好是带实战项目的课程,自己好好学一遍,并动手把课程里面的项目自己搞出来。
如果你还没掌握这些东西,或者不确定你目前的基础知识是否能够支撑你学习web安全技术,也不要慌,你可以直面问题。在学习过程中遇到问题后,在反过头去补充对应的基础知识,这样也可能更加适合迫切想要学习安全技术而又不知道如何打基础的一些同仁。毕竟,我们推崇"曲折前行"。
by zhuifengshaonian hanlu