标签: owasp

在nginx后面运行jasperserver:潜在的CSRF攻击

我们使用nginx进行https流量卸载,代理到在端口8080上运行的本地安装的jasperserver(5.2).

internet ---(https/443)---> nginx ---(http/8080)---> tomcat/jasperserver
Run Code Online (Sandbox Code Playgroud)

当直接在其端口上访问jasperserver时,一切都很好.当通过nginx访问服务时,某些功能被破坏(例如,在jasperserver UI中编辑用户),jasperserver日志具有如下条目:

CSRFGuard: potential cross-site request forgery (CSRF) attack thwarted (user:%user%, ip:%remote_ip%, uri:%request_uri%, error:%exception_message%)
Run Code Online (Sandbox Code Playgroud)

经过一些调试后,我们找到了原因:

在其标准配置中,nginx不转发其名称中包含下划线的请求标头.然而,Jasperserver(和OWASP框架)默认使用下划线来传输csrf令牌(JASPER_CSRF_TOKENOWASP_CSRFTOKEN分别).

解决方案是:

  • nginx:允许标题中的下划线

    server {
       ...
       underscores_in_headers on;
    
    Run Code Online (Sandbox Code Playgroud)
  • jasperserver:更改令牌配置名称 jasperserver-pro/WEB-INF/esapi/Owasp.CsrfGuard.properties

另见:

proxy nginx csrf owasp jasperserver

10
推荐指数
1
解决办法
4466
查看次数

在同一会话中打开Java Web应用程序时,避免点击劫持

我正在尝试处理Java Web应用程序的点击劫持。我从Clickjacking防御备忘单中得到了一个解决方案

我在中添加了一个过滤器 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee                                        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>OWASP ClickjackFilter</display-name>
    <filter>
        <filter-name>ClickjackFilterDeny</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>DENY</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
    </filter>

    <!--  use the Deny version to prevent anyone, including yourself, from framing the page -->
    <filter-mapping>
        <filter-name>ClickjackFilterDeny</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


</web-app>
Run Code Online (Sandbox Code Playgroud)

我的过滤器类看起来像

package org.owasp.filters;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class ClickjackFilter implements Filter
{

    private …
Run Code Online (Sandbox Code Playgroud)

java jsp owasp clickjacking

10
推荐指数
1
解决办法
976
查看次数

如何使用OWASP HTML Sanitizer允许特定字符?

我正在使用OWASP Html Sanitizer来防止对我的网络应用程序进行XSS攻击.对于许多应该是纯文本的字段,Sanitizer的效果超出了我的预期.

例如:

HtmlPolicyBuilder htmlPolicyBuilder = new HtmlPolicyBuilder();
stripAllTagsPolicy = htmlPolicyBuilder.toFactory();
stripAllTagsPolicy.sanitize('a+b'); // return a&#43;b
stripAllTagsPolicy.sanitize('foo@example.com'); // return foo&#64;example.com
Run Code Online (Sandbox Code Playgroud)

当我有字段,如电子邮件地址有+它如foo+bar@gmail.com我结束了在数据库中的错误数据.所以有两个问题:

  1. + - @他们真的需要编码这些危险的角色吗?
  2. 如何配置OWASP html清理程序以允许特定字符,如+ - @?

问题2对我来说是更重要的答案.

java security xss sanitization owasp

9
推荐指数
1
解决办法
7269
查看次数

检测到跨站点请求伪造(CSRF)时应返回的响应

当检测到跨站点请求伪造(CSRF)时,我应该回复什么响应?

有一个扫描工具,我无法控制,这是说我的一个页面没有受到保护CSRF.但它是.我发回的响应是正常的202,句子"请求不能被处理".就是这样,没有任何信息被发送回攻击者,我记录了尝试.但是这个软件说它仍然容易受到影响CSRF.我可以很容易地自己运行测试并弄清楚但是在扫描和测试之间需要很长时间才能得到相同的软件,这就是我要求stackoverflow的原因,所以我希望能在下一次计划的扫描中将其删除.我正在考虑发送一个statusCode 404410代替一个202. http://www.cfgears.com/index.cfm/2009/8/11/cfheader-404-status-codes-and-why-you-shouldnt-use-them

CSRF检测到a时,您建议发回什么?

coldfusion csrf owasp

9
推荐指数
1
解决办法
2805
查看次数

OWASP十大攻击和Spring Security

我正在评估我的Web应用程序的安全性.当我在我的Web应用程序中使用Spring时,我想利用Spring Security框架.我搜索了有关网络安全的更多信息,并遇到了OWASP社区,它是十大攻击列表.所以我的问题是; 将Spring Security配置为保护我的应用程序是否足够?OWASP排名前十(2013)的所有安全威胁是由Spring Security Framework处理的?

spring-security owasp

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

Apache Shiro和Java Security for Novices

我对Java的安全模型几乎一无所知,包括XML配置,策略设置,任何安全框架组件,工具(如密钥库等)以及介于两者之间的所有内容.

虽然我知道它最终将成为必不可少的,我挽起衣袖和学习深入Java安全,我在想,如果使用类似阿帕奇四郎将有助于缓解过渡一下.因此,我对它有一些担忧.

Shiro本质上是用于在Java应用程序(尤其是Web应用程序)中实现安全性的"交钥匙,捕获包装器".意思是,可以用他们的项目配置Shiro并且基本上调整它做所有相同的配置,策略设置等,一个人必须"手动"(零碎)没有它吗?如果没有,那么Shiro有什么缺点(Shiro不能为我做些什么重要事情)?是否存在Shiro根本没有解决的任何大漏洞?

同样,我听说过OWASP的ESAPI框架.Aybody有两种经验吗?ESAPI和Shiro可以配置为一起工作还是仅仅是二进制"一个或另一个"类型的交易?

提前致谢!

java apache security owasp shiro

8
推荐指数
1
解决办法
1995
查看次数

Magento CSRF保护

我正在寻找Magento的自定义表格.我看过这些教程

http://fastdivision.com/2012/03/29/diy-magento-create-ajax-login-registration-forms-for-your-magento-theme/

http://inchoo.net/ecommerce/magento/magento-email/magento-custom-email-contact-form-with-notification-system/

我没有看到任何关于CSRF预防的提及,比如使用存储在用户会话中的客户端令牌来检查客户端令牌.我也查看了Magento联系我们表格,看到了这个,但我不认为它与CSRF有关:

<input type="text" name="hideit" id="hideit" value="" style="display:none !important;">
Run Code Online (Sandbox Code Playgroud)

Magento有没有防止CSRF的默认代码?Mage_Core_Controller_Front_Action的$ this-> getRequest() - > getParams()方法是否自动执行任何操作以防止我可能丢失的CSRF?

php security csrf magento owasp

8
推荐指数
2
解决办法
5341
查看次数

和JavaScript包括

OWASP的XSS Filter Evasion Cheat Sheet提到"&JavaScript includes":

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#.26_JavaScript_includes

它提供的示例如下:

<BR SIZE="&{alert('XSS')}">
Run Code Online (Sandbox Code Playgroud)

我在jsfiddle上尝试使用Chrome和Firefox,但我没有获得JS弹出窗口.那么应该在哪些浏览器/版本上工作呢?

网址:

http://jsfiddle.net/rL1z32xb/

javascript xss owasp

8
推荐指数
1
解决办法
509
查看次数

拒绝在框架中显示,因为祖先违反了以下内容安全策略指令

我正在开发一个 salesforce 应用程序,该应用程序在 salesforce 页面的 iframe 内呈现。使用 Node Express 服务器来渲染此页面。作为安全审查的一部分,我只想在 salesforce 页面中呈现,如果嵌入到其他地方则阻止。

为此,我添加了内容安全策略标头,如下所示:

response.header("Content-Security-Policy", "frame-ancestors salesforce.com");

但它在 salesforce 页面上也被阻止。

错误 :

拒绝在框架中显示“ https://localhost:8000/authenticate ”,因为祖先违反了以下内容安全策略指令:“frame-ancestors salesforce.com”。*

我的 iframe 渲染的 salesforce 应用程序网址:https://ap4.salesforce.com/0016F00001vmoMu

我尝试按照*.salesforce.com指令给出域名。但它也不起作用。

有人可以帮助我哪里做错了吗?

javascript security owasp node.js content-security-policy

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

OWASP 依赖项检查,如何使用抑制

我的 CI 构建在 OWASP 依赖项检查中失败。例如

[HIGH] CVE-2021-37136 - io.netty:netty-codec-4.1.66.Final
Run Code Online (Sandbox Code Playgroud)

我知道我可以添加抑制来owaspDependencyCheckSuppressions.xml解决这个问题。

这是我以前没有做过的事情,但这里有一个指南 - https://jeremylong.github.io/DependencyCheck/general/suppression.html 上面写着......

“使用 HTML 报告抑制这些误报相当容易。在报告中,每个已识别的 CPE 旁边(以及 CVE 条目上)都有一个抑制按钮。单击抑制按钮将创建一个对话框,您可以简单地按 Control-C复制要放入抑制 XML 文件中的 XML”

我有 2 个问题

#1 你知道我在哪里可以找到这份 HTML 报告吗?我认为它可能在 CI 中链接(我正在使用 Circle CI),但我在那里找不到它:(

#2 指南中给出了抑制示例

<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
   <suppress>
      <notes><![CDATA[
      file name: some.jar
      ]]></notes>
      <sha1>66734244CE86857018B023A8C56AE0635C56B6A1</sha1>
      <cpe>cpe:/a:apache:struts:2.0.0</cpe>
   </suppress>
</suppressions>
Run Code Online (Sandbox Code Playgroud)

指南接着说

“上面的 XML 文件将抑制任何具有匹配 SHA1 哈希值的文件中的 cpe:/a:apache:struts:2.0.0。”

“任何文件”是什么意思?这是否意味着任何使用依赖关系的 Java 类?

谢谢 :)

java security continuous-integration suppression owasp

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