AI 时代下组织如何快速变革?如何提升全员 AI 技能?戳> 了解详情
写点什么

安全框架 HDIV 2.0:现支持与 Spring MVC 和 JSTL 的集成

  • 2007-09-20
  • 本文字数:1459 字

    阅读完需:约 5 分钟

开源 Web 应用安全框架 HDIV 最近发布了 2.0 版。为了解更多关于此次发布的情况,InfoQ 采访了 HDIV 项目领队 Roberto Velasco Sarasola。

Sarasola 将 HDIV 描述为 Java Web 应用安全框架,它旨在防止绝大多数常见的 Web 应用攻击,如 SQL 注入、跨站点脚本和参数篡改。HDIV 假定任何远程 HTTP 客户端请求都会成为攻击媒介,并着手验证请求不是某种类型的攻击——这意味着要解决存在于现有应用框架中验证策略的缺口:

当前 Web 框架提供了一些验证功能,但是大多数时候它们不足以覆盖常用验证的需要。例如,在你的 Web 应用中有一个这样的链接 http://www.myhost.com/action1.do?account=56,访问帐号为 56 的信息,你如何保证客户端不会更改这个值去访问其他人的帐号,如 account=40? 使用标准安全验证器(validator)(更适合用于可编辑数据验证),不可能检查这种情况,你需要自定义验证。例如,在 HttpSession 中包含帐号 id 或在数据库中执行的 SQL 里使用用户标识。这种安全问题,被认为是实例级别的安全,它非常难以解决。因为,在一个 Web 应用中,有成千上万条相似的请求需要被验证。

以下是 Sarasola 描述的 HDIV 所提供的抵御这些攻击种类的能力:

  • 数据完整性——为了防止参数篡改,HDIV 保证任何服务器产生的、只读数据(如隐藏域)不能被客户端修改。
  • 可编辑数据验证——为了去除跨站点脚本和 SQL 注入攻击,HDIV 分析所有的可编辑数据域。
  • 数据保密——通过混淆参数名称和值,HDIV 加密了不可编辑数据,这样防止了内部数据(如列名或 Web 目录名)暴露给客户端。
  • 详细的攻击日志——HDIV 记录它检测到的每次攻击的信息,信息包括:URL、用户名、IP 地址和攻击类型。

HDIV 通过自定义 JSP 标签与 Java Web 应用集成,标签用来替换普通的链接和 Form 标签。在应用的 web.xml 中插入一个 HDIV Web 过滤器,这样将对每个请求自动执行验证。在以前版本中,HDIV 支持 Struts 1.x Struts 2.x ,而本次发布现在也支持 Spring MVC 2.0 JSTL 。对这些新框架的支持是靠扩展 Spring 和 JSTL 标签本身并在其中加入 HDIV 功能做到的——为了支持它们,对核心 HDIV 库和 Web 过滤器都不需要做任何改动。同样,既然 Spring 和 Struts 都是基于 Action 的框架,在 HDIV 看来,它们非常相似——Sarasola 说最大的挑战是扩展框架标签本身,因为标签上定义的扩展点非常糟糕或者压根儿就不存在。他也表示期望框架开发者能对标签增加定义良好的扩展点,以使得其他框架的开发者可以更加容易的集成它们。

Sarasola 还被问到了对于 HDIV 的后续打算,他描述了一个针对 Webflow 集成的计划:

目前 HDIV 支持 3 种状态管理策略。就内存和哈希(memory and hash)策略来说,HDIV 为每个可能在 JSP 中被处理的请求(每个链接或 Form 之一)在服务器端保存一个对象(状态)。有趣的是,从伸缩性的观点来看,它限制了服务器端的缓存大小。在当前的发布中,可以定义一个最大缓存大小,但是很多时候很难定义一个合适大小的缓存,因为这依赖于应用。 我们考虑用 Webflow 来解决这个问题 ,因为它提供了一种逻辑划分客户端导航的方法。这样,HDIV 将使用 Webflow 监听器的功能来决定何时从缓存删除对象。

另一个有趣的特性是,利用自定义标签,HDIV 给每个链接或 Form 自动加上了 webflow execution key。现在,在 Struts、Struts 2 和 Spring MVC 应用中,我们不得不手动增加这个 id,我们非常高兴能让这个任务自动起来。

同时,他还指出对于 WebWork Stripes JSF 的支持也在计划之列。

查看英文原文: HDIV 2.0: Security framework now integrates with Spring MVC and JSTL

2007-09-20 00:305881
用户头像

发布了 255 篇内容, 共 60.0 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

个人微调大模型踩坑与记录

Z C C C L

人工智能 大模型 模型微调

YashanDB控制文件管理

YashanDB

数据库 yashandb

YashanDB SYSAUX表空间管理

YashanDB

数据库 yashandb

DeepSeek 联合 Abaqus 深度融合,宣告 AI+CAE 仿真黄金时代来临

思茂信息

人工智能 AI 仿真 CAE DeepSeek

YashanDB redo日志文件管理

YashanDB

数据库 yashandb

文献解读-Identification of Key Candidate Genes for Beak Length Phenotype by Whole-Genome Resequencing in Geese

INSVAST

基因测序 Sentieon 变异检测 GATK 生物信息分析服务

Flutter & 鸿蒙版本数据处理常用总集

淼.

YashanDB归档日志文件管理

YashanDB

数据库 yashandb

libvirt和qga的区别?

天翼云开发者社区

云计算 虚拟化

DeepSeek 3FS 实测|从设计哲学到 AI 场景适配法则

焱融科技

文件系统 AI存储 DeepSeek 3FS

YashanDB数据库删除

YashanDB

数据库 yashandb

创建云主机你不知道的那些事

天翼云开发者社区

云计算 云主机

DeepSeek接入MES系统AI赋能智能化生产

万界星空科技

制造业 mes 万界星空科技 生产管理MES系统 DeepSeek

「南非+印尼」新站点上线!观测云深化全球布局

观测云

全球化

YashanDB异构数据库链接配置

YashanDB

数据库 yashandb

YashanDB数据库删除

YashanDB

数据库 yashandb

音乐NFT软件系统的上线流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

DM 集群迁移

TiDB 社区干货传送门

迁移 集群管理 管理与运维 扩/缩容

黑龙江等保测评、消除“过等保”的隐形成本

黑龙江陆陆信息测评部

“3公里5分钟”卓翼智能无人机打通怒江物流配送“最后三公里”

科技热闻

NineData社区版抢先体验,获取无人机、双肩包、充电宝等周边福利

NineData

安装部署 SQL审核 无停机数据库迁移 NineData社区版 数据库变更

写一个简单的SQL生成工具

高端章鱼哥

批量创建云主机的整个过程

天翼云开发者社区

云计算 云主机

.NET Core 中如何实现缓存的预热?

秃头小帅oi

YashanDB数据文件管理

YashanDB

数据库 yashandb

荣耀远航计划丨【主题精品共创】激励解读

荣耀开发者服务平台

创作活动 荣耀HONOR 荣耀远航计划

WebGL开发医学影像软件中的优化

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

智能制造:工业装备数字化端到端解决方案

积木链小链

数字化转型 智能制造 装备制造

智慧医院软件信息化建设方案,智慧医疗医院建设方案(PPTX)

金陵老街

智慧医疗 医疗信息化 智慧医院

YashanDB配置参数文件与密码文件管理

YashanDB

数据库 yashandb

YashanDB SYSTEM表空间管理

YashanDB

数据库 yashandb

安全框架HDIV 2.0:现支持与Spring MVC和JSTL的集成_Java_Ryan Slobojan_InfoQ精选文章