第一章
一个不安全应用的剖析
毫无疑问,安全是任何一个写于
21
世纪的
web
工程中最重要的架构组件之一。在这样一个时代,计算机病毒、犯罪以及不合法的员工一直存在并且持续考验软件的安全性试图有所收益,因此对你负责的项目综合合理地使用安全是至关重要的一个元素。
本书的写作遵循了这样的一个开发模式,这个模式我们感觉提供了一个有用的前提来解决复杂的话题——即使用一个基于
Spring3
的
web
工程作为基础,以理解使用
Spring Security3
使其保证安全的概念和策略。
不管你是不是已经使用
Spring
Security
还是只是对这个软件有兴趣,就都会在本书中得到有用的信息。
在本节的内容中,你能够:
l
检查一个虚拟安全审计的结果
l
讨论
web
应用通常的一些安全问题
l
学习软件安全中的几个核心词汇和概念
如果你已经熟悉基本的安全术语,你可以直接跳到第二章:
Spring Security
起步,在哪里我们将涉及这个框架的细节。
安全审计
这是你作为软件开发人员在
Jim
Bob Circle Pant Online Pet Store(JBCPPets.com)
工作的一个清晨,你正在喝你的第一杯咖啡的时候,收到了你主管的以下邮件:
To:
Star Developer <stardev@jbcppets.com>
From: Super
Visor <theboss@jbcppets.com>
Subject:
安全审计
Star,
今天,有一个第三方的安全公司要审计我们的电子商务网站。尽管我知道你在设计网站的时候已经把安全考虑在内了,但请随时解决他们可能发现的问题。
Super
Visor
什么?你在设计应用的时候并没有过多考虑安全的问题?似乎你有许多的东西要向安全审计人员学习。首先,让我们花一点时间检查一下要审计的应用吧。
关于样例应用
尽管在本书的后续内容中我们要模拟虚拟的场景,但这个应用的设计以及我们对其进行的改造都是基于现实世界中真实使用
Spring
的工程。
这个应用的设计很简单,使得我们能够关注于重要的安全方面而不会过多关注
ORM
的细节和复杂的
UI
技术。我们期望你能够参考其他的资料来掌握示例代码中所涉及功能的技术。
代码是基于
Spring
和
Spring
Security3
编写而成的,但是它很容易改变为
Spring Security2
的例子。关于
Spring Security 2
和
3
的细节差异,可以参照第十三章:迁移至
Spring Security
,可以作为将示例代码转换成
Spring Security2
的帮助材料。
不要以本应用作为基础去构建真实的
Pet Store
在线应用。本应用已经有意识的构建地简单并关注于本书所要阐述的概念和配置。
JBCP Pets
应用的架构
本应用遵循标准的三层结构,包括
web
层、服务层和数据访问层,如下图所示:
web
层封装了
MVC
的代码和功能。在示例代码中,我们使用了
Spring MVC
框架,但是我们可以一样容易的使用
Spring Web Flow
,
Struts
甚至是一个对
Spring
友好的
web stack
如
Apache Wicket
。
在一个典型使用
Spring
Security
的
web
应用中,大量配置和参数代码位于
web
层。所以,如果你没有
web
应用开发,尤其是
Spring MVC
的经验,在我们进入更复杂的话题前,你最好仔细看一下基础代码并确保你能理解。再次强调,我们已经尽力让我们的应用简单,把它构建成一个
pet store
只是为了给它一个合理的名字和轻量级的结构。可以将其与复杂的
Java EE Pet Clinic
示例作为对比,那个示例代码展现了很多技术的使用指导。
服务层封装了应用的业务逻辑。在示例应用中,我们在数据访问层前做了一个很薄的
façade
用来描述如何在特殊的点周围保护应用的服务方法。
在典型的
web
工程中,这一层将会包括业务规则校验,组装和分解
BO
以及交叉的关注点如审计等。
数据访问层封装了操作数据库表的代码。在很多基于
Spring
的工程中,这将会在这里发现使用了
ORM
技术如
hibernate
或
JPA
。它为服务层暴露了基于对象的
API
。在示例代码中,我们使用基本的
JDBC
功能完成到内存数据库
HSQL
的持久化。
在典型的
web
工程中,将会使用更为复杂的数据访问方式。因为
ORM
,即数据访问,开发人员对其很迷惑。所以为了更清晰,这一部分我们尽可能的对其进行了简化。
分享到:
相关推荐
### 第一章:Spring Security3入门 该章节分为两个部分,介绍了Spring Security3的基础概念,包括如何设置安全上下文、理解Spring Security的架构以及如何使用Spring Security进行基本的认证和授权。 ### 第二章:...
《Spring Security3》第二章第三部分的翻译下篇主要涵盖了Spring Security的核心概念和技术,这部分内容是深入理解Spring Security架构和实现安全控制的关键。在本章节中,我们将详细探讨以下几个核心知识点: 1. *...
第一章:一个不安全应用的剖析 第二章:springsecurity起步 第三章:增强用户体验 第四章:凭证安全存储 第五章:精确的访问控制 第六章:高级配置和扩展 第七章:访问控制列表(ACL) 第八章:对OpenID开放 第九章...
#### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患,并评估安全措施的有效性。 - **过程**:通过模拟攻击来测试系统的安全性,分析日志记录,评估现有安全策略。 **样例应用简介*...
《Spring Security3》第四章第四部分主要探讨了Remember me服务的后台存储机制以及如何结合SSL(Secure Sockets Layer)来增强应用的安全性。这一部分的知识点涵盖了Spring Security中Remember me的功能,用户身份...
第三章介绍了如何构建Spring Security工程。在创建项目时,可以通过IDE或者Maven命令创建新的Maven项目。在创建项目时,需要填写项目名称、groupId、artifactId等信息,并选择合适的Maven版本。在项目的pom.xml文件...
Spring Security 是一个强大的和高度可定制的身份验证和...总的来说,Spring Security 3.x第五章的实例将帮助开发者深入理解这个框架的使用,通过具体的代码示例来实践安全性配置,从而更好地保护他们的Spring应用。
- 第3章:Spring Security架构与设计,这一章节着重讲述Spring Security的内部架构和设计原理,让读者理解其工作原理以及各个组件之间的交互。 - 第4章:Web安全,涵盖了针对Web应用层的安全性措施,包括认证、授权...
### 第一章:一个不安全应用的剖析 本章节通过分析一个不安全的应用案例,引出了安全审计的重要性,并对Spring Security的应用背景进行了介绍。 - **安全审计**:介绍了如何通过日志记录等方式来进行安全审计,以...
在课程中,新增的第10+11章可能涵盖了Spring Security与OAuth2的深度整合,这包括: 1. 如何使用Spring Security作为OAuth2的授权服务器,实现用户登录验证和令牌发放。 2. 客户端注册和认证:如何在Spring ...
2. **SpringSecurity**:SpringSecurity是一个用于保护Web应用的安全框架,提供了身份验证、授权等功能。它通过一系列拦截器对HTTP请求进行过滤,确保只有经过认证和授权的用户才能访问特定资源。在这个项目中,...
#### 第一章:一个不安全应用的剖析 - **安全审计**:介绍如何通过安全审计来发现系统中的安全漏洞,并解释审计的重要性。 - **关于样例应用**:本章节以JBCPPets应用为例,深入分析其架构和技术栈。 - **JBCPPets...
- **第1章:一个简单的HelloWorld** - **配置过滤器:** 使用Spring Security提供的过滤器来实现基本的安全控制。 - **使用命名空间:** 通过XML配置文件中的命名空间简化Spring Security的配置过程。 - **完善...
第一章:安全的范围(The Scope of Security) - 安全基础:介绍安全的基本概念,包括认证(Authentication)、授权(Authorization)、非功能特性(Non-Functional Properties)如机密性、完整性和可用性。 - 安全...
#### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:通过安全审计来识别应用程序中存在的潜在安全风险。 - **流程**: - **审查应用程序结构**:了解应用程序的整体架构、使用的框架和技术栈。 - **...
在"Spring第一章"中,我们将深入理解Spring框架的基础概念、核心特性以及如何在实际项目中应用。 1. **Spring框架简介** Spring是一个开源的Java平台,提供了一个全面的基础设施,支持开发和部署Java应用程序。它...