标签: owasp

GWT SafeHTML,XSS和最佳实践

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编码?

security xss gwt owasp

5
推荐指数
1
解决办法
3882
查看次数

OWASP html sanitizer - 为什么它不转义某些实体?

我是 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)

编辑:我问的原因是我希望我的用户输入尽可能匹配我们输出的内容。我知道在某些情况下这是不可能的,但我预计在这种情况下会是这样。

java sanitization owasp

5
推荐指数
1
解决办法
2758
查看次数

ASP反请求伪造,为什么黑客不会先获取?

我一直在我的MVC3 Web应用程序中实现ASP ARF令牌,并阅读CSRF漏洞利用的工作方式以及ARF令牌如何防御它.现在我想知道'黑客'是否无法通过额外的步骤绕过ARF检查.正常的CSRF场景如下:

  1. 创建一个发布到目标网站BankingSite的网站(我们称之为HackerSite)
  2. 使用社交工程(或广告中的XSS等),以便用户访问网站HackerSite
  3. HackerSite上的脚本将使用用户cookie /凭证发布到BankingSite,从而以他/她的名义发布

由于我们的ARF令牌,BankingSite知道忽略来自网站HackerSite的POST.因为它缺少正确的AFR令牌.谁能告诉我为什么黑客不能通过首先在BankingSite上执行GET请求来获取令牌?像这样:

  1. 创建一个发布到目标网站BankingSite的网站(我们称之为HackerSite)
  2. 使用社交工程(或广告中的XSS等),以便用户访问网站HackerSite
  3. HackerSite上的脚本将执行GET请求并从响应中的HTML中获取ARF令牌,此请求还将在用户的cookie中设置ARF令牌
  4. HackerSite上的第二个脚本将使用抓取的ARF令牌 +用户cookie /凭证发布到BankingSite ,从而以他/她的名字发布

有谁知道我在这里缺少什么,以及ARF如何抵御这种攻击?

asp.net asp.net-mvc csrf owasp

5
推荐指数
1
解决办法
127
查看次数

使用 spring security 在响应中添加安全标头

我正在使用 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)

可能是什么原因?

spring-security owasp

5
推荐指数
1
解决办法
1万
查看次数

OWASP ESAPI的Java bean验证替代方案

随着OWASP从一个旗舰项目中降低Java ESAPI以及围绕库的所有讨论和不确定性,我想看看有哪些替代方案可用.我目前使用ESAPI进行输入验证,HTML/JS/etc编码和CSRF.我环顾四周,找到了像OVal,Vlad和其他类似的图书馆,但没有找到一个包容性的库来处理之前的3个项目.如果可能的话,我也希望它可以在外部"配置"规则(如ESAPI).

您是否有任何建议来处理Java输入/ bean验证,HTML/JS编码和CSRF令牌利用?无论是开源还是商业.

java validation encoding owasp esapi

5
推荐指数
1
解决办法
2645
查看次数

在 javax XML 验证器中禁用 DTD

我正在使用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 中配置它?

java xml security xml-validation owasp

5
推荐指数
1
解决办法
7004
查看次数

ZAP 可以用于 SPA 应用吗

我有一个 SPA 应用程序(angularjs 前端/restfull WebAPI 后端)。SPA 是使用客户端路由的设计 - 即典型的“页面”看起来像

http://contosco.com#/page1

http://contosco.com#/page2

.. 等等

我知道 ZAP 具有“ajax spidering”模式,在该模式下它可以“​​从 javascript”获取网址。然而,主动扫描只是发出 http 请求 - 所以我怀疑 ZAP 是否可以用于这种情况 - 还是我错了?

owasp single-page-application zap

5
推荐指数
1
解决办法
3117
查看次数

OWASP ZAP - 如何“证明”误报?

我们的客户要求我们针对我们的 Web 应用程序(ASP.NET 4.5.2、Webforms)运行 OWASP ZAP 工具,我们无法在报告中找到任何高优先级的发现。

我们已经完成了分析,OWASP ZAP 报告了两个最有可能是“误报”的漏洞:

  • 远程操作系统命令执行
  • SQL注入

远程操作系统命令执行似乎是假的,因为我们没有在任何地方执行任何操作系统命令——那么攻击者怎么能得到我们的代码在远程机器上执行他的命令呢?

而且 SQL 注入看起来非常虚假,因为我们到处都使用实体框架它使用正确参数化的查询,这是针对任何 SQL 注入的黄金标准......

其他人是否对 OWASP ZAP 有过这种“误报”?是否有任何“已知问题”记录在任何地方,我们可以用来证明该工具是错误的——而不是我们的代码?

c# false-positive owasp asp.net-4.5 zap

5
推荐指数
1
解决办法
4407
查看次数

SPA 中令牌存储和刷新的选项

我一直在阅读 Aaron Parecki 的基于浏览器的应用程序草案(意思是使用 React 或 Angular 开发的 SPA)使用 OAuth 2 以及 OWASP 安全指南的身份验证最佳实践,这让我感到非常困惑:

  1. RFC 草案提到了轮换刷新令牌。现在我将如何在坚持 REST 的无状态约束的同时做到这一点?我是否在 cookie 和刷新令牌中包含一些随机字符串的摘要并检查它们是否相等?
  2. 在浏览器中存储刷新令牌的正确方法(或者更确切地说,一些更安全的方法)是什么?我检查了 okta 的 JS auth 库,它localStorage默认使用,这是 OWASP 指南推荐的。它有某种额外的保护吗?我是否应该在其中放入一些额外的摘要并将其放入 cookie 中并进行匹配?
  3. OWASP 建议 session ID 应该对客户端完全不透明,但是如果我们使用 JWT,是不是违反了这个原则?这是否意味着我应该始终使用对称密码加密我的 JWT?

一些参考:

owasp oauth-2.0 jwt reactjs angular

5
推荐指数
1
解决办法
2267
查看次数

Sonatype 扫描显示 Spring-Web 易受攻击

我公司的 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年后没有解决?

security spring spring-mvc owasp sonatype

5
推荐指数
1
解决办法
1562
查看次数