前置讲解
该阶段我们分如下部分讲解,具体参考即可:
- Web 安全基础理念
- 网络安全学习方法参考
- 网络安全思想
- Web 安全就业前景分析
- 网络安全词汇讲解
0x01 Web 安全基础理念
1.Web 应用程序的发展历程
早期的 Web 应用程序基本以静态页面呈现(HTML,CSS),没有动态的操作方法,无法与用户完成动态交互,对待所有用户均以平等
从过去到现在,Web 应用程序发展十分的迅速,如今强大的 Web 应用程序层出不穷,以框架,以后台,以动态交互,以安全限制等操作为主
但是Web应用程序的发展也带来了新的重大安全威胁。应用程序各不相同,所包含的漏洞也各不相同。许多应用程序是由开发人员独立开发的,还有许多应用程序的开发人员对他们所编写的代码可能引起的安全问题只是略知一二。为了实现核心功能,Web应用程序通常需要与内部计算机系统建立连接。这些系统中保存着高度敏感的数据,并能够执行强大的业务功能。15年前,如果需要转账必须去银行,让银行职员帮助你完成交易。而今天,你可以访问银行的Web应用程序,自己完成转账交易。进入Web应用程序的攻击者能够窃取个人信息,进行金融欺诈或执行针对其他用户的恶意行为。
2.Web 应用程序常见功能
创建Web应用程序的目的是执行可以在线完成的任何有用功能。近些年出现的一些Web应用程序的主要功能有:
- 购物(Amazon);
- 社交网络(Facebook);
- 银行服务(Citibank);
- Web搜索(Google);
- 拍卖(eBay);
- 博彩与投机(Betfair);
- 博客(Blogger);
- Web邮件(Gmail);
- 交互信息(Wikipedia)。
…
3.Web 安全核心问题:用户可提交任意输入 🔺🔺🔺🔺🔺
正是因为这种操作形式导致了我们常见的一些 Web 安全漏洞:
例如 SQL 注入,XSS,CSRF,SSRF,命令注入,文件包含等等漏洞
均一用户可提交任意输出而产生,当然程序员编写的代码也可能不符合安全规范,未作过滤,如今的安全防护形式均以代码层面操作,以过滤和防护WAF 等操作防护这类恶意输入
与多数分布式应用程序一样,为确保安全,Web应用程序必须解决一个根本的问题。由于应用程序无法控制客户端,用户几乎可向服务器端应用程序提交任意输入。应用程序必须假设所有输入的信息都是恶意的输入,并必须采取措施确保攻击者无法使用专门设计的输入破坏应用程序干扰其逻辑结构与行为,并最终达到非法访问其数据和功能的目的。
- 用户可干预客户端与服务器间传送的所有数据,包括请求参数、cookie和HTTP信息头。可轻易避开客户端执行的任何安全控件,如输入确认验证。
- 用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或根本不提交参数。用户的操作可能与开发人员对用户和应用程序交互方式做出的任何假设完全不同。
- 用户并不限于仅使用一种Web浏览器访问应用程序。大量各种各样的工具可以协助攻击Web应用程序,这些工具既可整合在浏览器中,也可独立于浏览器运作。这些工具能够提出普通浏览器无法提交的请求,并能够迅速生成大量的请求,查找和利用安全问题达到自己的目的。
绝大多数针对Web应用程序的攻击都涉及向服务器提交输入,旨在引起一些应用程序设计者无法预料或不希望出现的事件。以下举例说明为实现这种目的而提交的专门设计的输入。
- 更改以隐藏的HTML表单字段提交的产品价格,以更低廉的价格欺诈性地购买该产品。
- 修改在HTTP cookie中传送的会话令牌,劫持另一个验证用户的会话。
- 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
- 改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感数据。
4.是否使用 SSL 安全套接层协议就不会遭受攻击 🔺
SS L是一种出色的技术,可为用户浏览器和 Web 服务器间传输的数据提供机密性与完整性保护功能。它有助于防止信息泄露,并可保证用户处理的 Web 服务器的安全性。但 SSL 并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,而许多成功的攻击都恰恰属于这种类型。特别需要指出的是,SSL 并不能阻止上述任何漏洞或许多其他使应用程序受到威胁的漏洞。无论是否使用 SSL,大多数 Web 应用程序仍然存在安全漏洞。
勿庸置疑,==SSL 无法阻止攻击者向服务器提交专门设计的输入。应用程序使用SSL仅仅表示网络上的其他用户无法查看或修改攻击者传送的数据。==因为攻击者控制着 SSL 通道的终端,能够通过这条通道向服务器传送任何内容。如果前面提到的任何攻击成功实现,那么不论其在 FAQ 中声称其如何安全,该应用程序都很容易受到攻击。
0x02 网络安全学习方法参考
对于学习方法,我只能给出自己的经验和网上综合一些,能够给予大家一些微量帮助,还望大家能够总结出一套属于自己思想的学习方法
- 没事多逛逛安全博客
- 没事多看看一些安全博客文章,涨涨自己的眼界
- 每天至少学习 4 个小时网络安全,不管有多忙坚持
- 没事多逛逛 github
- 总结出一套属于自己的笔记宝库
- 多多挑战自己不要对自己没自信,遇到问题迎难而上,多多实践,比如 CTF 挑战,靶机渗透测试
- 没事干就敲 python,php,golang,Java (起点高,不推荐上来就学)
0x04 Web 安全就业前景分析
1.各大职业招聘条件
2.薪水分析
0x05 网络安全常用词汇
关于这些常用词汇,没必要死记硬背,有些不知道的将这个表格保存在自己笔记中,不知道就参考一下