"本站点是安全的"
实际上,大多数 Web 应用程序并不安全。下面列出常见类型的漏洞:
- 不完善的身份验证措施
- 不完善的访问控制措施
- SQL 注入
- 跨站点脚本
- 信息泄露
- 跨站点请求伪造
核心安全问题:用户可以提交任意输入
Web 应用程序的核心安全问题:用户可以提交任意输入。由于引用程序都无法控制客户端,用户几乎可向服务端应用程序提交任意输入。引用程序必须假设所有输入的信息都是恶意的输入,并必须采取措施确保攻击者无法使用专门设计的输入破坏应用程序,干扰其逻辑结构与行为,并最终达到非法访问其数据和功能的目的。
这个核心问题变现在许多方面:
- 用户可干预客户端和服务端见传送的所有数据,包括请求参数,Cookie,HTTP 信息头等。
- 用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或者根本不提交参数。即用户的操作和开发者对用户和引用程序交互方式做出的任何假设完全不同。
- 用户并不仅限于一种 Web 浏览器访问应用程序。各种各样的工具可以提出普通浏览器无法提交的请求,并能迅速生成大量的请求,查找和利用安全问题达到自己的目的。
绝大多数针对 Web 应用程序的攻击都设计向服务器提交输入,旨在引起一些应用程序设计者无法预料或者不希望出现的事件。
- 更改以隐藏的 HTML 表单字段提交的产品价格,以低廉的价格欺诈性地购买商品。
- 修改 HTTP Cookie 中的会话令牌,劫持另一个验证用户的会话。
- 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
- 改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感数据。
关键问题因素
任何情况下,如果一个应用程序必须接受并处理可能为恶意的未经验证的数据,就会产生 Web 应用程序面临的核心安全问题。但是,对 Web 应用程序而言,几种因素的结合使问题更加严重。
- 不成熟的安全意识:与网络和操作系统这些发展更完善的领域相比,人们对 Web 应用程序的安全意识还远不够成熟。
- 独立开发:大多是应用程序都与企业自己独立开发,即是应用程序采用第三方组件,也是使用新代码将第三方组件进行自定义或拼凑在一起。导致每个应用程序各不相同,并且可能包含其独有的缺陷。
- 欺骗性的简化:程序员新手短时间内也可以从头开始创建一个强大的应用程序,但是编写功能性的代码和编写安全代码之间存在巨大的差异。而且使用建站框架使可以快速方便的创建可运行的应用程序,但是人们却无法了解这些应用的运行机制或潜在风险。
- 迅速发展的威胁形式:Web 应用程序攻击和防御是一个发展相对不成熟,正在迅速发展的领域,新概念和威胁出现的速度非常快。在客户端更是如此,针对某些特定攻击的公认防御措施往往在一些研究中失去作用,这些研究最终成就新的攻击技巧。
- 资源和速度限制:独立,一次性开发,时间和资源的不足,是的应用程序往往忽视不明显的安全问题。
- 技术上强其所难:开发人员沿用原油的技术来满足新的需求
- 对功能需求不断增强:现在的网站包含各种各样的功能,在某种程度上增加的网站被攻击的可能性。
在 Web 应用程序之前,主要在网络边界抵御外部攻击。保护这个边界需要对其提供的服务进行强化,打补丁,并在用户访问之间设置防火墙。
Web 应用程序改变了这一切。用户要访问应用程序,边界防火墙必须允许其通过 HTTP/HTTPS 连接内部服务器;应用程序要实现其功能,必须允许其连接服务器以支持后端系统,如数据库,大型主机以及金融与后勤系统。这些系统通常处于组织运营的核心部分,并由几层网络级防御保护。
如果 Web 应用程序存在漏洞,那么公网上的攻击者只需要从 Web 浏览器提交专门设计的数据就可以攻破组织的核心后端系统。这些数据会向传送至 Web 应用程序的正常、良性数据一样,穿透组织的所有网络防御。
标题:Web应用程序安全
作者:General
地址:https://ZZUGEneral.github.io/articles/2020/10/13/1602577132460.html
一个没有得到Java开发工作的测试员!