gpt4 book ai didi

java - 如何检查 HttpServletRequest 的 request.getQueryString() 方法是否容易受到 SSRF 攻击?

转载 作者:行者123 更新时间:2023-12-01 17:55:35 27 4
gpt4 key购买 nike

在我当前的 Spring MVC 应用程序中,我们有如下所示的网关模块代码。

URI uri = new URI(restURLProtocol, null, URLDomain, URLPort, "/api" +    request.getRequestURI(), request.getQueryString(), null);

网关模块将使用 AsyncRestTemplate 调用同一服务器上的另一个应用程序,效果很好。

但是像chekmarx这样的工具表明代码request.getString()对于SSRF(服务器侧面请求伪造)攻击,因为攻击者可以控制目标请求,通过发送请求中的 URL 或其他数据。

那么有什么方法可以检查 request.getString() 是否容易受到 Java 中的 SSRF 攻击?

最佳答案

通过 POC(概念验证)来证明代码审查结果非常困难。在这种情况下,“理论上”假设 SSRF 可能发生。当查询字符串值出现在任何代码段中并且用户在该查询字符串中输入不同的 url 时,如果它得到响应,则可能会导致 SSRF。您阅读了这篇文章 - https://www.acunetix.com/blog/articles/server-side-request-forgery-vulnerability/ .

因此,最好验证或格式化代码中使用的任何查询字符串值。 SSRF 的可能性不大,但这些查询字符串值可能会导致 XXS 或 SQL 注入(inject)(仅取决于值的使用方式)。

在我看来,代码审查应该会导致开发人员的想法发生轻微的改变,并让他/她思考安全性。我认为代码审查主要关注值(value)如何进来、值(value)从哪里进来以及它如何在代码中使用。只要注意数据流并思考如果恶意输入到来,会发生什么。

关于java - 如何检查 HttpServletRequest 的 request.getQueryString() 方法是否容易受到 SSRF 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41159218/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com