当前位置: 首页 > 知识库问答 >
问题:

HDIV与ESAPI的区别

王棋
2023-03-14

我打算使用Spring MVC开发一个web应用程序,并试图找出哪一个是解决OWASP十大问题的最佳库。我来看了两个HDIV和ESAPI,有谁能帮我了解一下它们之间的区别。

谢谢你的帮助。

共有1个答案

司马自明
2023-03-14

首先,我认为这两个web应用程序安全框架的方法和范围是不同的。在某些方面,它们也可以是互补的解决方案,可以一起使用。

关于这种方法,HDIV试图通过与web框架的集成来自动化安全最佳实践。为了实现这种方法,HDIV已经集成到一些最常用的Java/JVM web框架中,例如:Spring MVC、Grails、JSF、Struts1、Struts2。需要注意的是,如果您的应用程序使用web frameworks标记来呈现链接和表单,HDIV不需要在源代码中进行任何更改,只需要声明性配置(基于XML或Java配置的配置)。

另一方面,ESAPI提供了许多开发人员必须在源代码中使用的实用程序。换句话说,程序员必须在源代码中手动包含所有这些实用程序。ESAPI不依赖于web框架,可以在任何web应用程序中使用,因为它没有与web框架集成。

    null

A1-注射:

  • HDIV:关于HTTP参数的值,URL和cookie HDIV将此漏洞的风险仅降低到来自表单内文本字段的数据,并对来自客户端的其余数据应用完整性验证(确保接收到的值与在服务器端生成的值相同)。对于表单中包含的文本字段,HDIV提供了通用验证(白名单和黑名单),以避免注入攻击。
  • esapi:每个参数的手动输入验证。这个特性很有用,但是几乎所有的web框架都提供了这个特性。除此之外,SQL编码功能还可以在查询执行之前以编程方式对SQL进行编码。

A2-breaked身份验证和会话管理:

    null
    null
  • hdiv:控制在服务器端生成的所有数据(由框架标记处理),确保数据的完整性并消除此风险。不需要在受支持的web框架中更改任何源代码。需要注意的是,HDIV支持不同的方法来管理重新收集的信息:cipher(状态在响应中加密发送)、memory(状态存储在HttpSession中)、hash(状态的哈希存储在HttpSession中,内容存储在web响应中)。
  • ESAPI:必须创建一个映射,以编程方式包含每个参数并将其存储在会话中。
    (http://www.jtmelton.com/2010/05/10/the-owasp-top-ten-and-esapi-part-5-insecure-direct-object-reference/)。此特性包含在ESAPI2.x中,但我在ESAPI3.x中没有找到。

A5-安全配置错误:

  • hdiv:不包括特定的功能,但不允许访问服务器以前没有发送的资源,以避免意外行为的利用或访问私有资源。
  • Esapi:我没有找到任何特性,但我不是Esapi方面的专家。
  • hdiv:提供机密性功能来隐藏HTTP参数的值。HDIV不提供任何加密API。
  • ESAPI:提供加密、解密等加密API。更多详细信息请访问:https://github.com/esapi/esapi-java-legacy/blob/master/documentation/esapi4java-core-2.0-crypto-design-goals.doc。这些特性包含在ESAPI2.x中,但我在ESAPI3.x中没有找到。

A7-缺少功能级访问控制:

  • HDIV:由于HDIV实现了完整性验证,避免了利用此web风险,并限制只使用服务器以前生成的URL,同时保持应用程序提供的原始契约。
  • esapi:提供一个API以编程方式实现它。据我所知,它类似于Spring Security提供的特性,程序员必须在源代码中使用这些特性来保护每个URL。
  • HDIV:由于HDIV与web框架表单标记的集成,为每个表单添加了调味令牌以避免此漏洞。
  • esapi:提供生成令牌的API。此标记必须由程序员手动添加到每个web窗体中。

A9-使用具有已知漏洞的组件:

  • HDIV:不包括特定的功能,但由于HDIV对用户应用的交互限制,在许多情况下,用户无法利用已知的漏洞。
  • ESAPI:我在文档中没有看到任何特性,但我不是ESAPI方面的专家。
    null
 类似资料:
  • 我的代码使用的是org.owasp。esapi 2.2.0.0,但升级到2.2.3.1后,我得到了ClassNotFoundException。 我的代码类似于: 我阅读了发行说明,并添加了一些属性和esapi java日志 我的ESAPI.属性(在类路径中) 我的esapi java日志。属性(类内路径) 但是我得到了这个例外: 如果我更改我的ESAPI.属性并复制https://raw.git

  • 本文向大家介绍title与h1的区别、b与strong的区别、i与em的区别?相关面试题,主要包含被问及title与h1的区别、b与strong的区别、i与em的区别?时的应答技巧和注意事项,需要的朋友参考一下 title 是 网页标题标签 h1 是文本标签 默认与word的h1相似为最大的标题显示 b 为文本加粗标签 与word的加粗功能相似 strong 为强调语气, 也是为文本加粗 与b标签

  • 我们使用Veracode静态代码分析来发现和修复代码漏洞。一个反复出现的主题是,他们引用ESAPI作为修复它们的推荐解决方案,例如CW117(如何修复Veracode CWE 117(日志的不正确输出中和)) 然而,我真的不明白拥有一个独立的库有什么意义,它只是在其他库之上的某种安全层。如果一个库(如日志API)有漏洞,我为什么要首先使用它?我会为那个特定的开源社区做出贡献并修复那里的漏洞。或者使

  • OWASP ESAPI for Java: 为Java开发人员提供强力且简单的安全控制。 OWASP ESAPI (OWASP企业级安全API)是一个自由开源的web程序安全控制库,它可以让程序员很容易的写出低风险的程序。The ESAPI for Java library is 旨在让程序员很容易的改进现有程序的安全。 ESAPI for Java 也为新的开发奠定了坚实的基础。 更多信息,请访

  • 本文向大家介绍== 与 equals 的区别?相关面试题,主要包含被问及== 与 equals 的区别?时的应答技巧和注意事项,需要的朋友参考一下 == 解读: 对于基本类型和引用类型 == 的作用效果是不同的,如下所示: 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; 代码示例:   代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new Str

  • VitePress 和 VuePress有不同的 设计目标. 这两个项目都有相似的配置命名约定。VitePress的目标是拥有编写文档所需的最低限度功能。其他功能放在主题中实现。另外一方面,VuePress有更多的现成功能,包括由它的插件的生态系统启用的功能。 提示 如果你正在使用VuePress,则不需要迁移到VitePress。将来,这两个项目将继续共存。 警告 注意,VitePress 是早