“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:305645
用户头像

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

关注

评论

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

海泰方圆受邀出席2023黄河观潮·信创与商用密码融合发展高峰研讨会

电子信息发烧客

软件测试/测试开发丨PageObject 设计模式

测试人

软件测试 自动化测试 测试开发 pageobject

REST vs SOAP:两种 Web 服务协议的分析

Apifox

网络协议 Rest API soap web 服务

汇量科技使用倚天710云实例,高效处理大流量广告请求

云布道师

阿里云

国内Google翻译失效的解决方法(MAC/WIN)

互联网搬砖工作者

接口文档设计避坑指南

程序员小毕

面试 程序人生 后端 架构师 java程序员

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

引迈信息

人工智能 AI 低代码 ChatGPT JNPF

升级企业数智化底座,构建数智连接全能力

用友BIP

技术大会 用友iuap 用友技术大会

FastAPI入门

Liam

程序员 开发工具 API FastApi API 开发

苹果手机里面的udid怎么查出来

雪奈椰子

这是你的云-云起实验室

六月的雨在InfoQ

开发者 实验室 三周年连更 云起实验室

AutoCAD2024最新版介绍及autocad 2024系统要求

互联网搬砖工作者

共享电动车生产厂家!共享电单车厂商

共享电单车厂家

共享电动车厂家 共享电单车厂商 智能电动车生产

从入门到实战 | 尚硅谷Nifi视频教程发布

小谷哥

IT知识百科:什么是SSID?

wljslmz

三周年连更 ssid

开心档之MySQL 序列使用

用友iuap平台一站式服务,助力央国企推进数智化转型

用友BIP

如何通过Java应用程序在PPT中创建SmartArt图形

在下毛毛雨

Java PowerPoint 添加艺术图形

NFTScan 与 Web3 Analytics 达成合作伙伴,双方在多链 NFT 数据方面展开合作

NFT Research

NFT 区块链、

时隔两个多月,一起来看ChatGPT现况如何?

加入高科技仿生人

人工智能 AI 低代码 数字化

版本发布 | 九大功能优化,TDengine 3.0.4.0 稳定性、健壮性大幅提升

TDengine

tdengine 物联网 时序数据库

Linux 这4个进程相关的命令,太好用!

wljslmz

三周年连更

手把手教程 | 5分钟用轻量云主机搭建一个JupyterLab

京东科技开发者

Web 云主机 jupyterlab 企业号 4 月 PK 榜

如何快速在手机中查看UDID,无需itunes、itools

听说谛听闹退休?感知网络接班啦!

脑极体

感知网络

保姆级教程!如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案?

OpenAnolis小助手

Linux 开源 镜像 解决方案 龙蜥社区

海泰方圆成功当选黑龙江省商用密码协会会长单位

电子信息发烧客

2023年如何成为一名优秀的大前端Leader?

这我可不懂

低代码 JNPF

开心档之C++ STL 教程

雪奈椰子

SoapUI参数传递操作详解

Liam

Postman 开发工具 接口测试 soapui

苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】

雪奈椰子

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