标签: esapi

使用 Esapi 验证时出错

我希望有人可以帮助我解决一些问题。

我将 OWASP ESAPI 2.1.0 与 JavaEE 一起使用,以帮助我验证 Web 应用程序中的某些条目。在某些时候,我需要验证 Windows 文件路径,因此我在“validation.properties”中添加了一个新的属性条目,如下所示:

Validator.PathFile=^([a-zA-Z]:)?(\\\\[\\w. -]+)+$
Run Code Online (Sandbox Code Playgroud)

例如,当我尝试通过 ESAPI 验证像“C:\TEMP\file.txt”这样的字符串时,我得到一个 ValidationException:

ESAPI.validator().getValidInput("PathFile", "C:\\TEMP\\file.txt", "PathFile", 100, false);
Run Code Online (Sandbox Code Playgroud)

或者,我还尝试使用java.util.regex.Pattern类来测试具有相同字符串示例的相同正则表达式,并且它工作正常:

Pattern.matches("^([a-zA-Z]:)?(\\\\[\\w. -]+)+$", "C:\\TEMP\\file.txt")
Run Code Online (Sandbox Code Playgroud)

我必须说我在“validation.properties”中添加了其他正则表达式并且工作正常。为什么这个这么难?谁能帮我解决这个问题?

java regex validation owasp esapi

2
推荐指数
1
解决办法
1万
查看次数

我应该在哪里找到耳内多次战争使用的常见ESAPI.properties文件?

我有两个模块将使用具有相同属性文件的ESAPI(ESAPI和validation.properties).

这些模块输出到耳朵中包含的战争.

我在其中一个war文件中有属性文件,在服务器启动时可以找到它们.另一个war文件似乎工作正常,并没有抱怨它无法在日志中找到属性文件.

我正在使用ESAPI来清理html和url参数 - 我想知道我是否甚至需要这些属性文件才能被第二个模块访问,或者任何一个,因为没有配置,一切都是使用默认值完成的.

java ear configuration esapi

2
推荐指数
1
解决办法
4611
查看次数

使用 EncodeForHTML 时的 Coldfusion/Lucee 编码问题

对某些字符使用 EncodeForHTML 时遇到问题(在这种情况下是表情符号)

在这种情况下的文本是: ??abc ???????

现在如果我只是一个直接的输出

<cfoutput>#txt#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

它显示正确,没有问题,但如果我先使用 EncodeForHTML

<cfoutput>#EncodeForHTML(txt)#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我明白了??a??b??c?? ???????? ???????????????????????? ??

我也使用 EncodeForXML 和 esapiEncode 对其进行了测试以确保;所有人都给了我相同的结果。我已经验证了 Lucee 中的编码设置是 UTF-8,并且元字符集标记也设置为 UTF-8。我找不到任何文档 re: EncodeForHTML 说它是否对字符编码进行了任何更改,是否需要字符编码是特定的,或者它是否有任何已知的表情符号或某些代码点问题。

我感谢任何人可以提供的任何帮助或澄清。

编辑:谢谢大家。希望我能接受多个答案。

coldfusion encoding escaping esapi lucee

2
推荐指数
1
解决办法
179
查看次数

尝试记录警告时 ESAPI 抛出 org.owasp.esapi.errors.ConfigurationException

我们在 Spring Web 应用程序中添加了一个过滤器,用于检查所有传入请求是否存在可能导致 XSS 漏洞的内容。但是,当它尝试写入日志时,我们得到以下堆栈跟踪:

com.blah.blah.web.controllers.ExceptionLoggingController - ERROR: Exception: code=500,uri=/post.html,servlet=dispatch,class=org.owasp.esapi.errors.ConfigurationException,from=1.2.3.4,message=Request processing failed; nested exception is org.owasp.esapi.errors.ConfigurationException: java.lang.IllegalArgumentException: Classname cannot be null or empty. HTTPUtilities type name cannot be null or empty.
org.owasp.esapi.errors.ConfigurationException: java.lang.IllegalArgumentException: Classname cannot be null or empty. HTTPUtilities type name cannot be null or empty.
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:105)
    at org.owasp.esapi.ESAPI.httpUtilities(ESAPI.java:121)
    at org.owasp.esapi.ESAPI.currentRequest(ESAPI.java:70)
    at org.owasp.esapi.reference.JavaLogFactory$JavaLogger.log(JavaLogFactory.java:308)
    at org.owasp.esapi.reference.JavaLogFactory$JavaLogger.warning(JavaLogFactory.java:242)
    at org.owasp.esapi.reference.DefaultEncoder.canonicalize(DefaultEncoder.java:181)
    at org.owasp.esapi.reference.DefaultEncoder.canonicalize(DefaultEncoder.java:120)
    at com.blah.blah.web.MyFilter.removeXSS(MyFilter.java:26)
Run Code Online (Sandbox Code Playgroud)

我在类路径上有 ESAPI.properties,这似乎可以正常工作,并且确实配置了“丢失”的类:

ESAPI.HTTPUtilities=org.owasp.esapi.reference.DefaultHTTPUtilities
Run Code Online (Sandbox Code Playgroud)

DefaultHTTPUtilities 也在类路径上。

java spring esapi

1
推荐指数
1
解决办法
1万
查看次数

防止 JSP 中的 XSS 攻击

我想防止我的 web 应用程序中的 XSS 攻击,所以我想在将用户输入的数据保存在数据库中以在另一个 JSP 页面中显示之前对表单中输入的数据进行转义,并且我在两种方法之间犹豫不决:

StringEscapeUtils.escapeHtml(),对于输入REGGAETON / SALSA给我相同的结果,但对于ESAPI.encoder().encodeForHTML()相同的输入,输出将是REGGAETON & #x2f; 莎莎舞

security xss jsp owasp esapi

1
推荐指数
1
解决办法
211
查看次数

使用ESAPI getValidInput方法

我无法使用在ESAPI类“ 下存在的方法”

    java.lang.String getValidInput(java.lang.String context,
                                  java.lang.String input,
                                  java.lang.String type,
                                  int maxLength,
                                  boolean allowNull)
                                      throws ValidationException,
                                       IntrusionException

      Parameters:
         type - The regular expression name that maps to the actual regular expression from "ESAPI.properties". 
Run Code Online (Sandbox Code Playgroud)

如何从ESAPI.properties文件传递参数类型?我可以参考使用属性文件值的任何示例吗?

java esapi

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

esapi ×6

java ×4

owasp ×2

coldfusion ×1

configuration ×1

ear ×1

encoding ×1

escaping ×1

jsp ×1

lucee ×1

regex ×1

security ×1

spring ×1

validation ×1

xss ×1