笔者在学习Web安全的过程中,深切地感受到相关的知识浩如烟海,而且很大一部分知识点都相对零散,如果没有相对清晰的脉络作为参考,会给学习带来一些不必要的负担。因此,在对Web安全有了浅薄的了解之后,尝试把一些知识、想法整理记录下来,最后形成了这份笔记,希望能够为正在入门的网络安全爱好者提供一定的帮助。
在开始在前,需要明确的一个问题是,Web安全是什么。比较直白的一个定义是,Web安全是包括网站、网络应用、网络服务在内的一系列安全内容,或者说,Web安全关注的是应用层的安全,尤其是细化到与网络相关内容的安全。也就是说,Web安全需要学习的内容主要包括网络协议本身、网络应用的特性与对应的安全问题、各种工具的使用。实际上这几块内容是相当零散且庞杂的,那么应该如何学习呢,笔者尝试从这本笔记组织形式来回答这个问题。
以史为鉴,可以知兴替,最先需要了解的应该是领域的发展史。要更好的理解为什么现在的Web安全领域是这样的,各个研究又是朝什么方向而发展,就需要对Web应用技术与网络攻防技术的发展与演进历史有所了解。这也是笔记的第一部分,围绕Web技术的发展与演化、安全领域的基本常识进行了记录和说明。
在对Web安全发展史有大概了解之后可以开始对计算机网络的基础知识进行学习,这是本文的第二部分,对计算机网络的部分基础知识做了介绍。考虑到网络数据库、Web服务器等技术分支较多、演进较快,本文仅仅对网络协议进行了介绍而略过了网络应用的部分,实际上应该对各种编程语言、Web应用框架、网络服务、操作系统特性有所了解。
有一定基础之后可以关注一些更细化的攻防内容,比如某个漏洞类型的研究、某种语言、应用的特性与其对应的安全问题,这是本文的第三部分。这部分按照常见的渗透测试的顺序,对信息收集、常见的Web漏洞、常见语言与框架、内网渗透的技巧等进行了简单的讲述,开始学习渗透测试之后通常会接触到这部分内容。
第四部分回到防御的视角,从安全团队的建设、威胁情报与风控等视角进行了描述,也对蜜罐、溯源等较为细节的技术内容作了一定说明。
最后是更具体的应用,以工具的介绍与使用为主,文中的这一部分推荐了一些工具与资源列表,也归档了一部分暂时没有分类的内容。
在开始在前,需要明确的一个问题是,Web安全是什么。比较直白的一个定义是,Web安全是包括网站、网络应用、网络服务在内的一系列安全内容,或者说,Web安全关注的是应用层的安全,尤其是细化到与网络相关内容的安全。也就是说,Web安全需要学习的内容主要包括网络协议本身、网络应用的特性与对应的安全问题、各种工具的使用。实际上这几块内容是相当零散且庞杂的,那么应该如何学习呢,笔者尝试从这本笔记组织形式来回答这个问题。
以史为鉴,可以知兴替,最先需要了解的应该是领域的发展史。要更好的理解为什么现在的Web安全领域是这样的,各个研究又是朝什么方向而发展,就需要对Web应用技术与网络攻防技术的发展与演进历史有所了解。这也是笔记的第一部分,围绕Web技术的发展与演化、安全领域的基本常识进行了记录和说明。
在对Web安全发展史有大概了解之后可以开始对计算机网络的基础知识进行学习,这是本文的第二部分,对计算机网络的部分基础知识做了介绍。考虑到网络数据库、Web服务器等技术分支较多、演进较快,本文仅仅对网络协议进行了介绍而略过了网络应用的部分,实际上应该对各种编程语言、Web应用框架、网络服务、操作系统特性有所了解。
有一定基础之后可以关注一些更细化的攻防内容,比如某个漏洞类型的研究、某种语言、应用的特性与其对应的安全问题,这是本文的第三部分。这部分按照常见的渗透测试的顺序,对信息收集、常见的Web漏洞、常见语言与框架、内网渗透的技巧等进行了简单的讲述,开始学习渗透测试之后通常会接触到这部分内容。
第四部分回到防御的视角,从安全团队的建设、威胁情报与风控等视角进行了描述,也对蜜罐、溯源等较为细节的技术内容作了一定说明。
最后是更具体的应用,以工具的介绍与使用为主,文中的这一部分推荐了一些工具与资源列表,也归档了一部分暂时没有分类的内容。
2021年08月31日 本文简单介绍了TCP协议的三次握手和四次挥手的过程。
写《Go语言四十二章经》,纯粹是因为开发过程中碰到过的一些问题,踩到过的一些坑,感觉在Go语言学习使用过程中,有必要深刻理解这门语言的核心思维、清晰掌握语言的细节规范以及反复琢磨标准包代码设计模式,于是才有了这本书。
2021年09月03日
本书首先介绍了使用Go官方库开发RPC服务的方法,然后介绍流行gRPC库以及其它一些RPC框架如Thrift等,后面重点介绍高性能的分布式全功能的RPC框架 rpcx。读者通过阅读本书,可以快速学习和了解Go生态圈的RPC开发技术,并且应用到产品的开发中。
2021年09月27日 rpcx 可以通过 TCP、HTTP、UnixDomain、QUIC和KCP通信。你也可以使用http客户端通过网关或者http调用来访问rpcx服务。
斯坦福教授、Tcl 语言发明者 John Ousterhout 的著作《A Philosophy of Software Design》,自出版以来,好评如潮。按照 IT 图书出版的惯例,如果冠名为“实践”,书中内容关注的是某项技术的细节和技巧;冠名为“艺术”,内容可能是记录一件优秀作品的设计过程和经验;而冠名为“哲学”,则是一些通用的原则和方法论,这些原则方法论串起来,能够形成一个体系。正如”知行合一”、“世界是由原子构成的”、“我思故我在”,这些耳熟能详的句子能够一定程度上代表背后的人物和思想。用一句话概括《A Philosophy of Software Design》,软件设计的核心在于降低复杂性。
2021年10月09日