- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我一直在尝试评估 OWASP ESAPI 库,但在正确初始化它时遇到了问题。我为 ESAPI.properties 和 validation.properties 设置了一个资源文件夹,这些文件夹是从类路径加载的,没有问题。但是 antisamy-esapi.xml 文件不是从类路径加载的,我发现 2010 年的一个错误提到了这一点。我得到的错误是:
Attempting to load antisamy-esapi.xml as resource file via file I/O. Not found in 'org.owasp.esapi.resources' directory or file not readable: C:\Users\mydir\resin-pro-4.0.27\antisamy-esapi.xml Not found in SystemResource Directory/resourceDirectory: .esapi\antisamy-esapi.xml Not found in 'user.home' (C:\Users\mydir) directory: C:\Users\mydir\esapi\antisamy-esapi.xml
我正在使用此库将应用程序部署到 resin。我已尝试将 xml 文件手动放置在上述所有位置,唯一最终起作用的是我的主目录,这对于生产部署来说效果不是很好。
我还遵循了其他地方的建议,即设置 -Dorg.owasp.esapi.resources 属性。这也不起作用,但更有趣的是,错误没有改变,这让我认为由于某种原因没有选择设置。
关于此文件需要在我的项目中的什么位置的任何指示,以便在部署到容器后正确加载它?
提前致谢。
更新:
因此,通过深入研究代码,似乎有专门用于加载 ESAPI.properties 的函数,这就是为什么能够从部署到容器的标准资源(或任何其他 src 目录)目录加载该文件的原因.然而,antisamy-esapi.xml 的加载函数只是检查 user.home 下的特定目录、配置的自定义目录或通过 ClassLoader.getSystemResource() 的结果。不确定为什么这些例程是分开的。经过几个小时的困惑,我失去了耐心,复制了 DefaultSecurityConfiguration.java 并更正了 getResourceFile() 方法,以使用与 loadConfigurationFromClasspath() 相同的查找代码。然后我用这个类调用 ESAPI.override() ,它现在似乎可以正常工作了。
最佳答案
我设法通过为 esapi 资源添加以下行使其工作:
System.setProperty("org.owasp.esapi.resources", "src/main/resources");
DefaultSecurityConfiguration.java
至少现在我可以使用instance.getValidSafeHTML
但是,当一个部署到网络服务器时,它不会工作。我想补丁需要加载 antisamy-esapi.xml
才能从类路径加载。
关于java - 尝试使用 OWASP ESAPI 时找不到 antisamy-esapi.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014097/
我在我的项目中使用ESAPI,并将ESAPI配置目录添加到src/main/resources,因此它被复制到我的WAR文件中(我从cloudbees下载了WAR,我可以看到它被放在 WEB-INF/
我一直在尝试评估 OWASP ESAPI 库,但在正确初始化它时遇到了问题。我为 ESAPI.properties 和 validation.properties 设置了一个资源文件夹,这些文件夹是从
我已经有了 problems with the esapi , 但最后它奏效了... 我像这样在我的 pom.xml 中包含了 OWASP ESAPI org.owasp.esapi
我们在 Spring Web 应用程序中添加了一个过滤器,用于检查所有传入请求是否存在可能导致 XSS 漏洞的内容。但是,当它尝试写入日志时,我们得到以下堆栈跟踪: com.blah.blah.web
我尝试使用 esapi 库的 getValidSafeHtml () 函数,但出现以下异常 org.owasp.esapi.errors.ConfigurationException : Couldn
我正在使用 ESPAI 在 Java 中预防 SQLInjection。我只使用 ESAPI.encoder().encodeForSQL(ORACLE_CODEC,queryparam)) 方法。
我知道,我们可以使用encodeForHTML来处理HTMl,使用encodeForJavascript来处理javaScript。我的代码中有一个跨站点脚本:“Reflected fortify s
在将这个问题标记为重复之前,让我告诉你这个问题有点不同。 我在 NetBeans 上有一个包含三个模块的项目,即 -ejb、-ear 和 -web。我目前正在开发 -web 模块,直到昨晚一切正常,我
我是新手 Java 开发人员,在尝试使用 JBOSS 和 ESAPI 开发一些网站以确保安全时出现异常 java.lang.ClassCastException: org.jboss.logmanag
我的一个 REST API 有一个名为“partners”的查询参数,它是一个整数列表,因此您可以在 URL 中指定多个值。作为 XSS 攻击的预防措施,我使用 ESAPI 去除了输入中的恶意内容。这
我们有几个 webapps 需要 ESAPI java 库提供的功能。我和我的同事处于两难境地,是直接使用 ESAPI 从而直接依赖 ESAPI,还是创建一个接口(interface)来抽象对 ESA
我是一名 Java 开发人员,正朝着通往应用安全的道路前进,我偶然发现了 OWASP 组织及其配套的 Java API,即 ESAPI。 在我几个月前在此网站上提出的另一个问题中,有人向我指出 ESA
我正在尝试将 ESAPI 编码器与我的 JavaEE 应用程序合并,并希望它不对特定字符集进行编码,例如“<”、“!”、“(”、“)”。 我阅读了文档 https://static.javadoc.i
我试图通过对来自 UI 的内容进行编码来将数据保存到数据库,但是当尝试这样做时 ESAPI.encoder().encodeForXML(encodingContent goes here) 当执行此
我构建了一个 ESAPITestValidator 类,如下所示: public class ESAPITestValidator { Validator instance = ESAPI.valid
为了防止 SQL 注入(inject),OWASP对收到的字符进行编码。下面是 org.owasp.esapi.codecs.OracleCodec.java 类实现的代码 //Default im
我无法使用 ESAPI 类下的 of 方法 java.lang.String getValidInput(java.lang.String context,
在使用 OWASP 的 ESAPI 时,我发现自己陷入了这一特定代码行。 private static String customDirectory = System.getProperty("org
String safeOutput = ESAPI.encoder().encodeForHTML(request.getParameter("temp")); 上面不起作用,它没有验证。 (插入所有
我们有一个接受用户 URL 的应用程序。此数据需要验证,为此我们正在使用 ESAPI。但是,我们在处理包含 & 符号的 URL 时遇到了困难。 当 ESAPI 在验证之前对数据进行规范化时,就会出现问
我是一名优秀的程序员,十分优秀!