由于应用程序无法控制客户端,用户几乎可向服务器端应用程序提交任意输入。应用程序必须假设所有输入的信息都是恶意的输入,并必须采取措施确保攻击者无法使用专门设计的输入破坏应用程序,干扰其逻辑结构与行为,并最终达到非法访问其数据和功能的目的。
这个核心问题表现在许多方面。
- 用户可干预客户端与服务器间传送的所有数据,包括请求参数、cookie 和 HTTP 信息头。
- 用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或根本不提交参数。用户的操作可能与开发人员对用户和应用程序交互方式做出的任何假设完全不同。
- 用户并不限于仅使用一种 Web 浏览器访问应用程序。大量各种各样的工具可以协助攻击 Web 应用程序,这些工具既可以整合在浏览器中,也可独立于浏览器动作。这些工具能够提出普通浏览器无法提交的请求,并能够迅速生成大量的请求,查找和利用安全问题达到自己的目的。
绝大多数针对 Web 应用程序的攻击都涉及向服务器提交输入,旨在引起一些应用程序设计者无法预料或不希望出现的事件。以下举例说明为实现这种目的而提交的专门设计的输入。
- 更改以隐藏的 HTML 表单字段提交的产品价格,以更低廉的价格欺诈性地购买产品。
- 修改在 HTTP cookie 中传送的会话令牌,劫持另一个验证用户的会话。
- 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
- 改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感数据。
勿庸置疑,SSL 无法阻止攻击者向服务器提交专门设计的输入。应用程序使用 SSL 仅仅表示网络上的其他用户无法查看或修改攻击都传送的数据。因为攻击者控制着 SSL 通道的终端,能够通过这条通道向服务器传送任何内容。如果前面提到的任何攻击成功实现,那么不论其在 FAQ 中声称其如何安全,该应用程序都很容易受到攻击。
相关推荐
《Java Web综合实例——简易图书管理系统》 Java Web技术在构建Web应用程序方面有着广泛的应用,尤其是在开发企业级的管理系统中。本案例是一个基于Java Web的简易图书管理系统,它以B/S(Browser/Server,浏览器/...
总结,本Java课程设计项目旨在培养学生的实际开发能力和问题解决能力,通过旅游官网留言系统的实现,学习者可以深入理解Java Web开发流程,熟悉Spring Boot、MySQL、Ajax等技术,同时提升用户体验设计和系统安全防护...
首先,安全性较低,因为文本文件可以被任意具有文件读取权限的用户或攻击者直接访问,可能导致敏感信息泄露。其次,数据管理不便,没有数据库的事务支持和查询优化,如果数据量大,查找和管理信息可能会变得困难。...
在2023年某次安全研究中发现了一个严重安全漏洞——任意文件覆盖(Arbitrary File Overwrite),该漏洞允许攻击者通过特定的操作路径上传恶意JSP脚本到目标服务器上,进而获得服务器权限。这一漏洞被命名为“帆软V9...
《Selenium 2.14.0:Python 依赖包详解》 Selenium 是一个强大的自动化测试工具,尤其适用于Web应用程序。...通过深入理解Selenium的核心概念和使用技巧,开发者可以高效地进行测试工作,确保Web产品的质量和稳定性。
Badboy 支持定义多种类型的变量,包括字符串、数字等,并可以在脚本中任意位置使用这些变量。变量可以用来存储临时数据,如从服务器返回的会话ID等。 ##### 3.5 链接值 链接值是指将一个变量的值与另一个变量的值...
1995年,Netscape公司员工布兰登·艾奇(Brendan Eich)为了满足网页中验证用户输入的需求,创建了LiveScript语言,后来改名为JavaScript。这一命名意在借助Java的流行度来促进新语言的推广。 ##### 3. 后来的竞争...
1. 搜索功能:用户输入城市名,提交后触发API请求,获取到的天气数据更新到组件状态,再渲染到界面上。 2. 数据展示:天气信息通常包括温度、湿度、风速等,这些都可以通过React组件来呈现,例如使用卡片或者列表...
此外,在连接建立之后,服务器还可以向客户端发送任意多的字符串。 #### 二、核心概念与原理 在深入了解代码之前,我们需要先了解几个关键概念: 1. **客户端-服务器模型**:这是一种网络架构模型,其中一台或多...