ESAPI未通过文件验证

时间:2019-02-22 22:58:43

标签: java regex validation path esapi

我正在与ESAPI一起尝试并验证Windows目录路径。由于某种原因,我的目录路径中名为\ 14 \的部分已转换为CRLF。我收到的错误如下,我无法正确理解什么?我觉得我的正则表达式应该正常工作。

WARN  IntrusionDetector [SECURITY FAILURE Anonymous:null@unknown -> /project-test/IntrusionDetector] Invalid input: context=directoryPath, type(DirectoryName)=^[a-zA-Z0-9:/\\!@#$%^&{}\[\]()_+\-=,.~'` ]{1,255}$, input=C:\UsersTESTUS~1AppDataLocalTempTestCase8002TempWorkSpace, orig=C:\Users\TESTUS~1\AppData\Local\Temp\14\TestCase8002TempWorkSpace 

如您所见,我正在使用正则表达式: ^ [a-zA-Z0-9:/ \!@#$%^&{} []()_ +-= ,.〜'`] $

我的输入是: C:\ Users \ TESTUS〜1 \ AppData \ Local \ Temp \ 14 \ TestCase8002TempWorkSpace

输出,在ESAPI进行规范化和验证之后: C:\ UsersTESTUS〜1AppDataLocalTempTestCase8002TempWorkSpace

这是导致我收到错误的代码行;

String validatedSourcePath = ESAPI.validator().getValidInput("directoryUnzip", directory, "DirectoryName", 255, false);
File validFile = new File(validatedSourcePath);

1 个答案:

答案 0 :(得分:0)

@ C.Williams:我花了大约30分钟的时间在编辑器中写了详细的答复,但不小心使我的编辑器窗口激动了。我太愚蠢了,因为我没有保存它来重新编写它的愚蠢性,特别是因为我只完成了大约75%。

但是,如果您想给我发送电子邮件,我可以安排您通过Google环聊或Signal与您交谈,以告诉您您的问题是如何解决的。但这是一个漫长而复杂的过程,部分与ESAPI团队刚刚修复的错误有关,但尚未在任何正式版本中发布。但我不会再花45分钟或更长时间尝试用任何书面文字答复。我的电子邮件地址应该很容易找到。用谷歌搜索我的名字和ESAPI。我是ESAPI的项目负责人之一。

-凯文·沃尔特