- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们用于安全测试的第三方工具在 Tomcat 8 上存在慢速 HTTP POST 漏洞。我们在应用程序中有一个简单的 Spring Controller 和 JSP。
现有的 Tomcat 连接器配置如下:
<Connector port="8643" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" compression="on"
clientAuth="false" sslProtocol="TLS" maxPostSize="20480"
maxSwallowSize="20480" maxHeaderCount="25" maxParameterCount="100"/>
注意我们在tomcat前面没有Apache或者Nginx。请建议我们可以直接在 Tomcat 上使用的配置。
最佳答案
慢速 HTTP 攻击的一个例子是 SLOWLORIS
要使用 Tomcat 缓解它,解决方案是使用 NIO Connector ,如本 tutorial 中所述.
您的问题不清楚的是,Tomcat 已经默认在 Tomcat 8 上使用 NIO 连接器,这是您的配置:
The default value is HTTP/1.1 which uses an auto-switching mechanism to select either a non blocking Java NIO based connector or an APR/native based connector.
也许你应该设置一些其他连接器参数来专门限制 POST 滥用,我建议:
maxPostSize="1048576" (1 MByte)
connectionTimeout="10000" (10 seconds between the connection and the URI request)
disableUploadTimeout="false" (activate the POST maximum time allowed)
connectionUploadTimeout="20000" (maximum POST of 20 seconds)
还有一个选项是限制 header 数量(默认为 100),但这可能会对使用智能手机的人产生副作用(众所周知,智能手机会发送许多 header ):
maxHeaderCount="25"
但这取决于您的流量是来自互联网,还是来自具有已知用户的专业内部网。在后一种情况下,您可以将设置调整得更加宽松。
编辑 1:使用 MultipartConfig 加固
如其他一些帖子所述,maxPostSize 可能不适用于限制上传。使用 Java 7 built-in uploads 时,可以通过对 Servlet 的注释或配置来配置限制。它不是您所要求的纯 Tomcat 配置,但有必要了解它并与开发团队讨论,因为从开发的早期阶段就必须考虑安全性。
编辑 2: 禁用分块传输编码
一些慢速 HTTP POST 攻击基于使用 Transfer-Encoding : chunked
header 发送的请求,然后发送许多或无限数量的 block 。为了对抗这种攻击,我建议配置一个 Rewrite Valve .
要实现这一点,请在 server.xml
中的主机定义中添加阀门:
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
假设您的主机名是默认主机名 (localhost),您需要使用以下内容创建 $CATALINA_BASE/conf/Catalina/localhost/rewrite.config
文件:
RewriteCond %{HTTP:Transfer-Encoding} chunked
RewriteRule ^(.*)$ / [F]
如有必要,您可以调整 RewriteRule 以使用 F 标志导致的 403 Forbidden 以外的内容进行回复。这是纯 Tomcat 配置且灵活。
关于java - 缓解 Tomcat 8 上的慢速 HTTP 发布漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442855/
在我早期的 R 生活中,当涉及到目录和子目录之间的分隔符时,我发现了 R 和 Windows 在不同页面上的痛苦。尽管我知道这个问题,但我仍然因为必须手动在所有反斜杠前面放置一个反斜杠或用正斜杠替换所
我正在尝试使用名为 easeInBounce 的缓动 jQuery 函数,但它不起作用。我搜索了所有相关内容,所有页面都说我必须像这里一样放置 {easing:'easeInBounce'} 但它不起
我不明白为什么使用 fgets 获取输入总是给我的程序“密码错误”。 但是,当我使用 gets() 时,比如 gets(array); 它起作用了。 预期输出:当密码错误时,打印“Wrong Pass
我刚刚给了this Hadoop tuorial在 JobTracker 中读取 Hadoop 有跟腱(单点故障)的状态: The JobTracker is a single point of fa
我有一个关于 csrf 缓解的问题。文献建议在每个页面上使用 token ,该 token 必须与任何表单一起提交 - 此 token 必须有效才能进行交易。 页面上的 token 如何防止 csrf
.NET 中是否有任何预先存在的方法来检测/防止 xpath 注入(inject)攻击? 我可以预见 2 个例子,但可能还有更多。 例如 "/Some/XPath/" + UntrustedNodeN
我已经在 http://jsfiddle.net/GxpSQ/ 上发布了一个代码有一个工作代码。单击该框,它将随机播放。 基于 hungred.com 我的代码基于此示例 http://hungred
我最近不得不迁移一个由负载均衡器和三个后端组成的基础架构。每个后端都设置了 apache2 来处理 HTTP/HTTPs 请求,并通过 AJP 协议(protocol)将它们转发到 tomcat 服务
系统的一个模块处理基于 JSON 的协议(protocol),该协议(protocol)用于传输各种数据。这导致了将近一百个小代码段,如下所示: /* * Data package Foo re
我希望有人能够帮助我理解这个问题,以及我是否需要采取任何额外步骤来保护我的应用程序。 阅读此特定漏洞,它似乎会影响符合以下条件的服务器: 从使用 HTTP 级压缩的服务器提供服务 在 HTTP 响应主
我希望能够在具有 REPR CStruct/CPointer 的类中使用双指针: typedef struct CipherContext { void *cipher;
我有一个X509Certificate2实例,并获取其PrivateKey属性,这是一个 RsaCryptoServiceProvider 。 MSDN 文档表明此 RsaCryptoServiceP
我们用于安全测试的第三方工具在 Tomcat 8 上存在慢速 HTTP POST 漏洞。我们在应用程序中有一个简单的 Spring Controller 和 JSP。 现有的 Tomcat 连接器配置
我已经设置了useHttpOnly=true在 tomcat context.xml 中,并且正在使用使用 java keytool 在 server.xml 连接器元素支持中生成的自签名证书来支持
根据 Azure 文档 github 问题 ( https://github.com/MicrosoftDocs/azure-docs/issues/75652 ) 中的 Azure 支持响应,Lin
我正在对我的 Java 代码执行 veracode 扫描,它在我的 DAO 类之一中引发以下错误 SQL 命令中使用的特殊元素的不正确中和(“SQL 注入(inject)”)CWE ID 89 但是,
我正在使用 Mongoose ODM wrapper对于 NodeJS,我担心注入(inject)攻击。假设我有以下架构: const UserSchema = new mongoose.Schema
我们有一个 jaxrs 服务,不幸的是执行了原始查询,没有准备好的语句。我们使用 ESAPI 来缓解 XSS、SQLI。如下所示: private String mitigateSQLI(String
我正在尝试减轻我们对 Poodle SSL 3.0 Fallback 的脆弱性攻击。我们的管理员已经开始禁用 SSL 以支持 TLS 用于与我们服务器的入站连接。我们还建议我们的团队在他们的网络浏览器
我在 Heroku 上有一个应用程序(免费计划),并且在从 Django 管理上传媒体文件时经常收到应用程序错误。我使用 S3 来提供静态和媒体服务。通过 django admin 直接将文件上传到
我是一名优秀的程序员,十分优秀!