OWASP的优秀人员强调,您必须使用转义语法来处理您将不受信任的数据放入HTML文档的部分(正文,属性,JavaScript,CSS或URL).见OWASP - XSS.他们的API(由ESAPI团队开发)随后迎合了每个上下文的编码器:
ESAPI.encoder().encodeForHTML("input");
ESAPI.encoder().encodeForHTMLAttribute("input");
ESAPI.encoder().encodeForJavaScript("input");
ESAPI.encoder().encodeForCSS("input");
ESAPI.encoder().encodeForURL("input");
随后,这允许开发人员满足基于DOM的XSS.
所以我的问题是GWT的safehtml包如何迎合这一点,还是只关注HTML编码?
我是 Owasp 的新手,它是 HTML sanitizer,发现使用我使用的任何策略,它都会将某些实体转义回字符。
例如这个字符串:
@ test !
Run Code Online (Sandbox Code Playgroud)
变成这样:
@ test !
Run Code Online (Sandbox Code Playgroud)
我想尽可能地让实体“保持原样”。如果它正在逃避他们,而不是逃避他们,我什至会理解它。
那么这可以用消毒剂吗?无论我尝试使用什么策略,它似乎都能做到。
这是我为我的简单测试运行的代码:
package com.my.company.test;
import org.junit.Test;
import org.owasp.html.PolicyFactory;
import org.owasp.html.Sanitizers;
import junit.framework.TestCase;
public class OwaspSanitizerTest extends TestCase {
public static final PolicyFactory POLICY = Sanitizers.IMAGES;
@Test
public static final void testTextFilter() throws Exception {
String data = "@ test !";
String result = POLICY.sanitize(data);
System.out.println(result);
assertEquals("@ test !", result);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我问的原因是我希望我的用户输入尽可能匹配我们输出的内容。我知道在某些情况下这是不可能的,但我预计在这种情况下会是这样。
我一直在我的MVC3 Web应用程序中实现ASP ARF令牌,并阅读CSRF漏洞利用的工作方式以及ARF令牌如何防御它.现在我想知道'黑客'是否无法通过额外的步骤绕过ARF检查.正常的CSRF场景如下:
由于我们的ARF令牌,BankingSite知道忽略来自网站HackerSite的POST.因为它缺少正确的AFR令牌.谁能告诉我为什么黑客不能通过首先在BankingSite上执行GET请求来获取令牌?像这样:
有谁知道我在这里缺少什么,以及ARF如何抵御这种攻击?
我正在使用 spring 安全版本 3.2。在经过身份验证的请求的响应标头中添加 X-Frame-options、X-content-type-options 等标头。
<sec:http auto-config="false">
<sec:headers>
<sec:frame-options policy="DENY" />
<sec:content-type-options />
<sec:xss-protection enabled="true" block="true" />
</sec:headers>
</sec:http>
Run Code Online (Sandbox Code Playgroud)
但是这些标头没有添加到安全无请求中。
<sec:http security="none" pattern="/spring/loginpage" />
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?
随着OWASP从一个旗舰项目中降低Java ESAPI以及围绕库的所有讨论和不确定性,我想看看有哪些替代方案可用.我目前使用ESAPI进行输入验证,HTML/JS/etc编码和CSRF.我环顾四周,找到了像OVal,Vlad和其他类似的图书馆,但没有找到一个包容性的库来处理之前的3个项目.如果可能的话,我也希望它可以在外部"配置"规则(如ESAPI).
您是否有任何建议来处理Java输入/ bean验证,HTML/JS编码和CSRF令牌利用?无论是开源还是商业.
我正在使用javax.xml.validation.Validator来验证我的 xml,如下所示 -
Validator validator = myschema.newValidator();
validator.validate(new StreamSource(new StringReader(xmlString)));
Run Code Online (Sandbox Code Playgroud)
我想通过完全禁用 DTD(文档类型定义)来防止 XML 外部实体攻击,所以如果可能的话,我希望验证器在我的 xml 中出现 DTD 的情况下抛出异常。我已阅读有关使用DocumentBuilderFactory. 我如何在 Validator 中配置它?
我有一个 SPA 应用程序(angularjs 前端/restfull WebAPI 后端)。SPA 是使用客户端路由的设计 - 即典型的“页面”看起来像
.. 等等
我知道 ZAP 具有“ajax spidering”模式,在该模式下它可以“从 javascript”获取网址。然而,主动扫描只是发出 http 请求 - 所以我怀疑 ZAP 是否可以用于这种情况 - 还是我错了?
我们的客户要求我们针对我们的 Web 应用程序(ASP.NET 4.5.2、Webforms)运行 OWASP ZAP 工具,我们无法在报告中找到任何高优先级的发现。
我们已经完成了分析,OWASP ZAP 报告了两个最有可能是“误报”的漏洞:
远程操作系统命令执行似乎是假的,因为我们没有在任何地方执行任何操作系统命令——那么攻击者怎么能得到我们的代码在远程机器上执行他的命令呢?
而且 SQL 注入看起来非常虚假,因为我们到处都使用实体框架,它使用正确参数化的查询,这是针对任何 SQL 注入的黄金标准......
其他人是否对 OWASP ZAP 有过这种“误报”?是否有任何“已知问题”记录在任何地方,我们可以用来证明该工具是错误的——而不是我们的代码?
我一直在阅读 Aaron Parecki 的基于浏览器的应用程序草案(意思是使用 React 或 Angular 开发的 SPA)使用 OAuth 2 以及 OWASP 安全指南的身份验证最佳实践,这让我感到非常困惑:
localStorage默认使用,这是 OWASP 指南推荐的。它有某种额外的保护吗?我是否应该在其中放入一些额外的摘要并将其放入 cookie 中并进行匹配?一些参考:
我公司的 Sonatype 扫描显示 Spring-Web 即使是最新版本(目前是 5.2.3.RELEASE)也容易受到攻击。它说“发现安全漏洞 CVE-2016-1000027,严重性为 9.8”。我注意到 CVE-2016-1000027 已于 2020 年 1 月 2 日添加到 NATIONAL VULNERABILITY DATABASE 中,它是关于“如果用于不受信任数据的 Java 反序列化,Spring Framework 4.1.4 会遇到潜在的远程代码执行 (RCE) 问题” . 这是一张过时的票还是4年后没有解决?
owasp ×10
java ×3
security ×3
zap ×2
angular ×1
asp.net ×1
asp.net-4.5 ×1
asp.net-mvc ×1
c# ×1
csrf ×1
encoding ×1
esapi ×1
gwt ×1
jwt ×1
oauth-2.0 ×1
reactjs ×1
sanitization ×1
sonatype ×1
spring ×1
spring-mvc ×1
validation ×1
xml ×1
xss ×1