Part I.前言
Spring Security为基于Java EE的企业软件应用程序提供了一个全面的安全解决方案。当您在本参考指南中冒险时,您会发现,我们试图为您提供一个有用且高度可配置的安全系统。
安全是一个不断变化的目标,追求全面的、全系统的方法非常重要。
在安全领域,我们鼓励您采用“安全层”,以便每一层都尽可能地以其自身的安全性,而连续的层提供额外的安全性。
每一层的安全性越“紧”,应用程序就越健壮和安全。
在底层,您需要处理传输安全和系统标识等问题,以减轻中间人攻击。
接下来,您将通常使用防火墙,可能使用vpn或IP安全,以确保只有经过授权的系统才能尝试连接。
在公司环境中,您可以部署一个DMZ来将面向公共的服务器从后端数据库和应用程序服务器中分离出来。
您的操作系统也将发挥关键作用,解决诸如以非特权用户身份运行进程和最大限度地提高文件系统安全性等问题。操作系统通常也会配置自己的防火墙。希望在此过程中的某个地方,您将试图防止拒绝服务和对系统的暴力攻击。
入侵检测系统对于监视和响应攻击也特别有用,因为这样的系统能够采取保护措施,例如实时阻止有问题的TCP/IP地址。
移到更高的层,Java虚拟机将有望配置为最小化授予不同Java类型的权限,然后应用程序将添加自己的特定于域的问题安全配置。Spring安全性使得后一个领域——应用程序安全——更加容易。
当然,您需要正确地处理上面提到的所有安全层,以及包含每一层的管理因素。此类管理因素的非详尽清单将包括安全公告监控、修补、人员审查、审计、变更控制、工程管理系统、数据备份、灾难恢复、性能基准、负载监控、集中日志记录、事件响应程序等。
随着Spring Security专注于帮助您使用企业应用程序安全层,您会发现有很多不同的需求,就像有业务问题域一样。银行应用程序与电子商务应用程序有不同的需求。电子商务应用程序与企业销售人员自动化工具有不同的需求。这些定制需求使应用程序安全变得有趣、具有挑战性和有价值。
请阅读第一章,入门,从整体开始。这将向您介绍框架和基于名称空间的配置系统,您可以使用它们快速启动和运行。
为了进一步了解Spring Security是如何工作的,以及您可能需要使用的一些类,您应该阅读第二部分“架构和实现”。
本指南的其余部分采用更传统的参考样式,旨在根据需要阅读。
我们还建议您尽可能多地阅读一般应用程序安全问题。spring安全并不是解决所有安全问题的灵丹妙药。
应用程序的设计从一开始就要考虑安全性,这一点很重要。试图改造它不是一个好主意。特别是,如果您正在构建一个web应用程序,您应该意识到许多潜在的漏洞,例如跨站点脚本、请求伪造和会话劫持,您应该从一开始就考虑到这些漏洞。
OWASP网站(https://www.owasp.org/)维护web应用程序漏洞的前十个列表以及许多有用的参考信息。
我们希望你觉得这个参考指南有用,我们欢迎你的反馈和建议。
最后,欢迎来到spring安全社区。