ESAPI.encoder().encodeForHTML(request.getParameter(""))
org.owasp.esapi.errors.ConfigurationException: ESAPI.properties could not be loaded by any means. Fail.
org.owasp.esapi.reference.DefaultSecurityConfiguration.loadConfiguration(DefaultSecurityConfiguration.java:439)
最新的公共配置文件位于以下位置:
如果您阅读该文件中的注释/代码,您将看到如何处理文件位置。
为了正确使用该库,您将需要esapi.properties和validation.properties。
/**
* The reference {@code SecurityConfiguration} manages all the settings used by the ESAPI in a single place. In this reference
* implementation, resources can be put in several locations, which are searched in the following order:
* <p>
* 1) Inside a directory set with a call to SecurityConfiguration.setResourceDirectory( "C:\temp\resources" ).
* <p>
* 2) Inside the System.getProperty( "org.owasp.esapi.resources" ) directory.
* You can set this on the java command line as follows (for example):
* <pre>
* java -Dorg.owasp.esapi.resources="C:\temp\resources"
* </pre>
* You may have to add this to the start-up script that starts your web server. For example, for Tomcat,
* in the "catalina" script that starts Tomcat, you can set the JAVA_OPTS variable to the {@code -D} string above.
* <p>
* 3) Inside the {@code System.getProperty( "user.home" ) + "/.esapi"} directory (supported for backward compatibility) or
* inside the {@code System.getProperty( "user.home" ) + "/esapi"} directory.
* <p>
* 4) The first ".esapi" or "esapi" directory on the classpath. (The former for backward compatibility.)
* <p>
* Once the Configuration is initialized with a resource directory, you can edit it to set things like master
* keys and passwords, logging locations, error thresholds, and allowed file extensions.
* <p>
* WARNING: Do not forget to update ESAPI.properties to change the master key and other security critical settings.
*
* @author Jeff Williams (jeff.williams .at. aspectsecurity.com) <a href="http://www.aspectsecurity.com">Aspect Security</a>
* @author Jim Manico (jim .at. manico.net) <a href="http://www.manico.net">Manico.net</a>
* @author Kevin Wall (kevin.w.wall .at. gmail.com)
*/
只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。 下面我们借助一个简单图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 内部/外部用户或管理员发送给系统的不受信任的数据。 攻击者的方法 - 发送不受信任的数据/基
在其他一些论坛中,提到使用HTML消毒剂。什么是正确的方法,请…
现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成 XSS)的威胁,而静态站点则完全不受其影响。 攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、 ActiveX或Flash以欺骗用户
如何实现防止XSS的Java ESAPI? 除了在构建路径中添加ESAPI jar之外,还需要其他配置吗? 提前感谢您的回答。
我已经看到了许多堆栈溢出的答案,但它们没有在标准库中提供完整的规范化/编码解决方案,我可以编写静态测试,以确保开发人员正在使用该库。 是否有一个esapi或类似的“轻”库,我可以只用于JavaScript? 我已经看到了OWASP Esapi和jQuery编码器插件https://github.com/chrisisbeef/jquery-encoder和SalesForce编码器https://