Tag: esapi

ESAPI规范化畸形url

我们有一个接受用户url的应用程序。 这些数据需要validation,我们正在为此目的使用ESAPI。 但是,我们正在努力处理包含&符号的url。 当ESAPI在validation之前规范化数据时,会出现此问题。 例如,URL中的&pid = 123变为πd= 123。 由于π未列入白名单,因此validation失败。 我已经尝试过对它进行编码,但是ESAPI比这更聪明,并且规范化以避免双重编码和混合编码。 我有点难过,我不知道该怎么办。

如何修复Veracode CWE 117(日志输出中和不当)

有一个Spring全局@ExceptionHandler(Exception.class)方法,它记录exception,如下所示: @ExceptionHandler(Exception.class) void handleException(Exception ex) { logger.error(“Simple error message”, ex); … Veracode扫描表明此日志记录具有Improper Output Neutralization for Logs并建议使用ESAPI记录器。 有没有办法在不将记录器更改为ESAPI的情况下修复此漏洞? 这是我遇到此问题的唯一代码,我试图找出如何以最小的更改来修复它。 也许ESAPI有一些我没有注意到的方法? PS当前记录器是slf4j上的Log4j UPD:最后我使用了ESAPI记录器。 我以为它不会使用我的默认日志记录服务,但我错了,它只是使用我的slf4j logger接口和适当的配置。 private static final Logger logger = ESAPI.getLogger(MyClass.class); … logger.error(null, “Simple error message”, ex); ESAPI具有log4j记录器和记录器工厂的扩展。 可以配置在ESAPI.properties中使用的内容。 例如: ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory

Web项目下ESAPI.properties的正确位置

我在我的项目中添加了一个OWASP ESAPI库。 目前我遇到了一个问题,在哪里找到ESAPI.properties文件。 此项目稍后应部署在我无法访问的少数服务器上。 所以在我看来,没有办法自定义org.owasp.esapi.resources变量,我不能把它放在用户主目录下。 所以我可以放这个文件的唯一地方是SystemResource Directory/resourceDirectory但它在哪里? 我已经尝试过这些文件了: .esapi/ESAPI.properties esapi/ESAPI.properties ESAPI.properties 进入这些地点: $CATALINA_HOME/webapps// $CATALINA_HOME/webapps//WEB-INF $CATALINA_HOME/webapps//WEB-INF/classes $CATALINA_HOME/webapps//META-INF 但在所有这些地方我收到一个错误: Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties 那么我应该在哪里找到这个文件? 这是一个遗留项目(只是没有Maven的Eclipse项目 ),它的结构非常难看。 没有像/src/main/resources这样的目录在我看来应该找到这个ESAPI.properties文件。 我已经创建了这个目录,但最终这个文件应该在部署到Tomcat的WAR存档之后?

XSSfilter删除所有脚本

我正在为我的Web应用程序实现一个XSSfilter,并使用ESAPI编码器来清理输入。 我使用的模式如下所示, // Script fragments Pattern.compile(“(.*?)”, Pattern.CASE_INSENSITIVE), // src=’…’ Pattern.compile(“src[\r\n]*=[\r\n]*\\\'(.*?)\\\'”, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), Pattern.compile(“src[\r\n]*=[\r\n]*\\\”(.*?)\\\””, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // lonely script tags Pattern.compile(“”, Pattern.CASE_INSENSITIVE), Pattern.compile(“”, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // eval(…) Pattern.compile(“eval\\((.*?)\\)”, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // expression(…) Pattern.compile(“expression\\((.*?)\\)”, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // javascript:… Pattern.compile(“javascript:”, Pattern.CASE_INSENSITIVE), // vbscript:… […]

用户提供的url属性的ESAPI XSS预防

我的一个REST API期望一个属性“url”,它希望URL作为用户的输入。 我正在使用ESAPI来防止XSS攻击。 问题是用户提供的URL就像 http://example.com/alpha?abc=def&phil=key%3dbdj 来自ESAPI编码器的cannonicalize方法抛出入侵exception,声称输入具有混合编码,因为它是url编码的,并且片段’&phi’被视为HTML编码,因此是exception。 我有一个类似的问题,清理我的一个应用程序URL,其中第二个查询参数以’pa’或’pi’开头,并通过HTML解码转换为delta或pi字符。 请参阅我之前的Stackoverflow问题 现在问题在于,由于整个URL都是来自用户的输入,我不能简单地解析Query参数并单独清理它们,因为可以结合两个查询参数创建恶意输入并单独清理它们不会在那里工作案件。 示例:&ltscr来自第一个查询参数值和ipt&gtalert(0)的最后一部分; 或者某些东西作为下一个查询参数控制上下文的第一部分。 有没有人遇到过类似的问题? 我真的很想知道你们实施了哪些解决方案。 谢谢你的任何指示。 编辑:来自’avgvstvs’的以下答案不会引发入侵exception(谢谢!)。 但是,cannonicalize方法现在更改原始输入字符串。 ESAPI将查询参数的phi视为一些html编码的char并将其替换为’?’ 焦炭。 像我之前在这里链接的问题。 区别在于我的应用程序的URL,而这是用户输入。 我唯一的选择是在这里保留一份白名单吗?

HDIV和ESAPI之间的区别

我计划使用Spring MVC开发一个Web应用程序,并试图弄清楚哪个是最好的库,用于超过10大OWASP问题。 我来看两个HDIV和ESAPI,任何人都可以帮我理解它们之间的区别。 感谢您的帮助。

用于XSS预防的ESAPI不起作用

我正在我们的代码中主要在JSPS中修复Cross站点脚本问题。 以下是原始代码 //scriplet code 他们拥有相同的Jsp <input type = hidden name = "userID" value = "” /> 我做了更改,在lib和ESAPI.properties中包含esapi-2.1.0.jar,在classpath中包含validation.properties。 然后在下面更改scriplet代码以修复上面的代码 //scriplet code 我认为这可以解决问题,但是当我使用Fortify扫描我的代码时,这些行再次突出显示为有XSS问题。 如果你们对如何处理这个问题有任何想法,请帮忙。 谢谢。 ——-更新 非常感谢@avgvstvs。 这是非常有见地的.Follwd指南,不确定我是否有点想念。 代码 – String userSID=ESAPI.encoder().encodeForHTMLAttribute(request.getHeader(“janus_sid”)); session.setAttribute(“username”,userSID);<input type=hidden name="USERNAME" value="” 对于另一个varibale调试,下面是用法 String debugFlag = ESAPI.encoder().encodeForJavaScript(request.getParameter(“debug”));var debugFlag = “”;if(debugFlag == “y”){ document.title= title + ” (” + host + “)”; defaultAppTitle = […]

尝试使用ESAPI但是获取错误

我正在尝试使用ESAPI.jar为我的Web应用程序提供安全性。基本上我刚开始使用ESAPI.jar。 但问题是我无法使用ESAPI运行一个简单的程序。 小代码片段是: String clean = ESAPI.encoder().canonicalize(“someString”); Randomizer r=ESAPI.randomizer(); System.out.println(r); System.out.println(clean); 我收到此错误: Attempting to load ESAPI.properties via file I/O. Attempting to load ESAPI.properties as resource file via file I/O. Not found in ‘org.owasp.esapi.resources’ directory or file not readable: D:\Eclipse-Workspace\Test\ESAPI.properties Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties Not found in ‘user.home’ (C:\Documents and Settings\user.user) directory: C:\Documents and […]