声明!
通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章,如涉及侵权马上删除文章,笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负.
文章为个人学习笔记。
11、框架
- 提到了几种流行的JavaScript框架:Vue、React和Angular。
- 强调了所有框架最终都是基于HTML、CSS和JavaScript这三种基本语言构建的。
- 指出如果仅从纯粹的JavaScript角度去分析安全问题(如XSS)会非常耗时,通常通过使用框架来分析这些问题。
- 提到存在许多框架,但了解它们的基本功能就足够了。
12、漏洞存在地方
前端潜在漏洞
- 信息泄露:敏感信息未经适当保护而被泄露。
- XSS(跨站脚本攻击):攻击者在网页中注入恶意脚本。
- CSRF(跨站请求伪造):攻击者诱使用户在已认证的会话中执行非自愿的操作。
- 点击劫持:攻击者通过透明层或窗口欺骗用户点击。
- 访问控制:未正确实施的权限检查导致未授权访问。
- Web缓存漏洞:浏览器或服务器缓存敏感信息。
- 跨域漏洞:不同域之间的安全限制被绕过。
- 请求走私:攻击者利用HTTP请求的解析差异进行攻击。
后端潜在漏洞
- 信息泄露:同前端,但通常涉及服务器端的数据。
- XSS:虽然主要影响前端,但后端也需防范反射型XSS。
- CSRF:同前端,但后端需要实施适当的防御措施。
- SSRF(服务器端请求伪造):攻击者利用服务器端应用程序发起恶意请求。
- 反序列化漏洞:不当的反序列化操作导致安全问题。
- SQL注入漏洞:攻击者通过注入恶意SQL代码来操纵数据库。
- 命令注入漏洞:攻击者通过注入恶意命令来执行未授权的操作。
- 服务端模板注入:攻击者通过注入模板代码来执行恶意操作。
- 跨域漏洞:同前端,但后端需要正确设置CORS策略。
- 访问控制:同前端,但后端需要确保适当的权限检查。
13、编程语言
编程语言
- PHP:一种广泛用于Web开发的服务器端脚本语言。
- Java:一种强类型、面向对象的编程语言,用于各种计算平台。
- Python:一种解释型、高级编程语言,以其易读性著称。
- Go语言(Golang):由Google开发的一种编程语言,以其并发能力著称。
- C/C++:两种广泛使用的编程语言,C++是C的扩展。
- Lua:一种轻量级的脚本语言,常用于嵌入式系统。
- Node.js:一个基于Chrome V8引擎的JavaScript运行环境,用于服务器端开发。
- Ruby:一种面向对象的脚本语言,以其简洁和高效著称。
后端语言的重要性
- 后端语言通常用于处理服务器端的逻辑,如数据库操作、业务逻辑处理等。
- 例如,PHP可能会有反序列化漏洞、SQL注入漏洞、命令注入漏洞等问题。
- 强调了即使没有使用过所有后端语言,至少需要学习一种,以便理解和处理这些安全问题。
- 特别提到了请求走私可能涉及到协议问题,暗示了对网络协议的理解也是必要的。
14、数据库
数据库的分类
数据库可以分为两大类:
-
关系型数据库:这类数据库使用表格来存储数据,表格之间通过关系来关联。常见的关系型数据库包括:
- MySQL
- SQL Server
- Access
- PostgreSQL
-
非关系型数据库:这类数据库不使用表格模型,而是使用其他数据模型,如键值对、文档、宽列存储或图形数据库。常见的非关系型数据库包括:
- MongoDB
- CouchDB
- Neo4j
- Redis
数据库的潜在漏洞
- 提到了数据库可能存在的潜在漏洞,如SQL注入、XSS(跨站脚本攻击)、命令注入等。
学习数据库的重要性
- 强调了在想要学习SQL注入等安全问题之前,需要对数据库有一定的了解。
- 比喻说,如果你想学SQL注入而不知道数据库是什么,就好比想当警察而不知道枪是什么。
15、服务程序
常见的服务器程序
- Apache:一种广泛使用的Web服务器软件。
- Nginx:一种高性能的HTTP和反向代理服务器。
- IIS(Internet Information Services):微软的Web服务器产品。
- Tengine:由淘宝网发起的Web服务器项目,Nginx的分支。
- Tomcat:由Apache软件基金会开发的Servlet容器。
- WebLogic:由Oracle公司开发的Java应用服务器。
潜在漏洞
-
服务器程序可能存在的潜在漏洞包括:
- 信息泄露
- 文件上传漏洞
- 文件解析漏洞
- 目录遍历
- 访问控制问题
Web程序
- 强调了Web程序的复杂性,指出前端语言虽然只有三种(HTML、CSS、JavaScript),但后端语言和框架非常多。
- 提到学习Web安全需要了解多种后端语言,如Java、PHP、Python等,因为每种语言都可能存在反序列化漏洞。
- 强调了理解Web程序的基本概念对于学习Web安全至关重要。
总结
- 懂进攻,知防守:了解攻击手段和防御策略是学习Web安全的基础。