需要帮助来识别 ESAPI.validator() 和 ESAPI.encoder() 之间的区别
Need help in identifying the difference between ESAPI.validator() and ESAPI.encoder()
我们正在我们的网站上实施应用程序安全。它是一个基于 REST 的应用程序,所以我将不得不验证整个请求负载,而不是每个属性。此有效负载需要针对所有类型的攻击(SQL、XSS 等)进行验证。在浏览时我发现人们正在使用 ESAPI 来保证网络安全。
我对 ESAPI.validator().getValidXXX
、ESAPI.encoder()
Java API 的 ESAPI 库感到困惑。这两者有什么区别,什么时候用哪个API。我还想知道在什么情况下我们可以同时使用 API 和
根据我的理解,我可以使用 API 对输入进行编码以形成有效的 html
例如:
ESAPI.encoder().encodeForHTML(input);
ESAPI.validator().getValidSafeHTML(context, input, maxLength, allowNull)
.
对于 XSS 攻击,我已经使用 java pettern&matcher 对剥离的 html 标签进行了代码更改,但我想使用 ESAPI 实现相同的目的。谁能帮我实现一下。
或者
是否有任何新的 java 为网络安全开发的类似于 ESAPI 的插件,我没有遇到过。我找到了 https://jsoup.org/,但它只能解决 XSS 攻击,我正在寻找一个库,它提供 API 的几种攻击 (SQL injection/XSS)
ESAPI.encoder().encodeForHTML(input);
您在向浏览器发送输入时使用它,以便您发送的数据被转义 HTML。这可能会变得棘手,因为您必须知道确切的数据是否在被渲染到 HTML 之前被传递到 javascript。或者如果它被用作 HTML 属性的一部分。
我们使用:
ESAPI.validator().getValidSafeHTML(context, input, maxLength, allowNull).
当我们想从客户端获取 "safe" HTML 时,这是由反同策略文件支持的,该文件准确描述了 HTML 标签和 HTML 的种类我们将从用户那里接受的属性。默认是拒绝,所以你必须明确告诉政策文件,如果你愿意接受:
<a href="www.someurl.com">text</a>
您需要指定您想要 "a" 标签,并且您将允许 "href" 属性,您甚至可以针对文本字段和标签属性中的内容指定进一步的规则.
如果您的应用程序需要接受来自用户的 HTML 内容,您只需要 "getValidSafeHTML"...这在大多数公司应用程序中通常是似是而非的。 (Myspace 曾经允许这样做,结果就是 Samy 蠕虫。)
通常,当内容进入您的应用程序时,您使用验证器 API,当您将内容返回给用户或后端解释器时,使用编码器 API。 AntiSamy 不再受支持,因此如果您需要 "safe HTML" 解决方案,请使用 OWASP 的 HTML Sanitizer.
Are there any new java plugins developed for websecurity similar to
ESAPI which i did not come accross. I have found https://jsoup.org/,
but it solves only XSS attacks, i am looking for a library which
provides API's for several attacks (SQL injection/XSS)
唯一尝试类似安全性的另一个是 HDIV。这是一个
*免责声明:我是 ESAPI 开发人员和 OWASP 成员。
旁注:我不鼓励使用 Jsoup,因为默认情况下它会改变传入数据,构建 "best guess"(无效)解析树,并且不允许您对该行为进行细粒度控制...意思是,如果在某个实例中您想覆盖并强制执行某种特定类型的策略,Jsoup asserts that it is always smarter than you are...而事实并非如此。
我们正在我们的网站上实施应用程序安全。它是一个基于 REST 的应用程序,所以我将不得不验证整个请求负载,而不是每个属性。此有效负载需要针对所有类型的攻击(SQL、XSS 等)进行验证。在浏览时我发现人们正在使用 ESAPI 来保证网络安全。
我对 ESAPI.validator().getValidXXX
、ESAPI.encoder()
Java API 的 ESAPI 库感到困惑。这两者有什么区别,什么时候用哪个API。我还想知道在什么情况下我们可以同时使用 API 和
根据我的理解,我可以使用 API 对输入进行编码以形成有效的 html 例如:
ESAPI.encoder().encodeForHTML(input);
ESAPI.validator().getValidSafeHTML(context, input, maxLength, allowNull)
.
对于 XSS 攻击,我已经使用 java pettern&matcher 对剥离的 html 标签进行了代码更改,但我想使用 ESAPI 实现相同的目的。谁能帮我实现一下。
或者
是否有任何新的 java 为网络安全开发的类似于 ESAPI 的插件,我没有遇到过。我找到了 https://jsoup.org/,但它只能解决 XSS 攻击,我正在寻找一个库,它提供 API 的几种攻击 (SQL injection/XSS)
ESAPI.encoder().encodeForHTML(input);
您在向浏览器发送输入时使用它,以便您发送的数据被转义 HTML。这可能会变得棘手,因为您必须知道确切的数据是否在被渲染到 HTML 之前被传递到 javascript。或者如果它被用作 HTML 属性的一部分。
我们使用:
ESAPI.validator().getValidSafeHTML(context, input, maxLength, allowNull).
当我们想从客户端获取 "safe" HTML 时,这是由反同策略文件支持的,该文件准确描述了 HTML 标签和 HTML 的种类我们将从用户那里接受的属性。默认是拒绝,所以你必须明确告诉政策文件,如果你愿意接受:
<a href="www.someurl.com">text</a>
您需要指定您想要 "a" 标签,并且您将允许 "href" 属性,您甚至可以针对文本字段和标签属性中的内容指定进一步的规则.
如果您的应用程序需要接受来自用户的 HTML 内容,您只需要 "getValidSafeHTML"...这在大多数公司应用程序中通常是似是而非的。 (Myspace 曾经允许这样做,结果就是 Samy 蠕虫。)
通常,当内容进入您的应用程序时,您使用验证器 API,当您将内容返回给用户或后端解释器时,使用编码器 API。 AntiSamy 不再受支持,因此如果您需要 "safe HTML" 解决方案,请使用 OWASP 的 HTML Sanitizer.
Are there any new java plugins developed for websecurity similar to ESAPI which i did not come accross. I have found https://jsoup.org/, but it solves only XSS attacks, i am looking for a library which provides API's for several attacks (SQL injection/XSS)
唯一尝试类似安全性的另一个是 HDIV。这是一个
*免责声明:我是 ESAPI 开发人员和 OWASP 成员。
旁注:我不鼓励使用 Jsoup,因为默认情况下它会改变传入数据,构建 "best guess"(无效)解析树,并且不允许您对该行为进行细粒度控制...意思是,如果在某个实例中您想覆盖并强制执行某种特定类型的策略,Jsoup asserts that it is always smarter than you are...而事实并非如此。