Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串输入参数的SSRF CheckMarx漏洞_Java_Checkmarx_Ssrf - Fatal编程技术网

Java 字符串输入参数的SSRF CheckMarx漏洞

Java 字符串输入参数的SSRF CheckMarx漏洞,java,checkmarx,ssrf,Java,Checkmarx,Ssrf,我正在为我的一个项目运行CheckMarx扫描,它带有一个SSRF漏洞,用于方法的一个输入字符串参数。我的方法如下所示,参数param1抛出了SSRF漏洞 在该方法中,我使用HttpClient GetMethod调用第三方URL,并将param1作为查询字符串参数传递 CheckMarx的SSRF为: The application sends a request to a remote server, for some resource, using @DestinationElement

我正在为我的一个项目运行CheckMarx扫描,它带有一个SSRF漏洞,用于方法的一个输入字符串参数。我的方法如下所示,参数param1抛出了SSRF漏洞

在该方法中,我使用HttpClient GetMethod调用第三方URL,并将param1作为查询字符串参数传递

CheckMarx的SSRF为:

The application sends a request to a remote server, for some resource, using @DestinationElement in \src\com\test\Test.java:87. However, an attacker can control the target of the request, by sending a URL or other data in param1 at \src\com\test\Test.java:55.
在第55行,我有

public String method1(@WebParam(name = "param1") final String param1) {
在第87行我有

private String processRequest(final GetMethod method) throws IOException {

非常感谢为解决此SSRF漏洞提供的任何帮助。谢谢。

要确认SSRF漏洞,还需要processRequest方法的代码片段。据我所知,CheckMarx报告了这个问题,因为“param1”应该包含第三方URL,应用程序正在使用该URL。有以下可能降低SSRF风险:

  • 您是否需要第三方库来执行此功能?如果没有,那么您可以安全地删除该代码
  • 若您需要第三方,并且URL保持不变,那个么您可以硬编码那个URL
  • 如果你不能硬编码,并且它不断变化,那么你能列出可能的第三方URL吗?必须手动检查所有可能的第三方URL,并执行白名单,以允许使用所需的URL。或者,所有可能的URL都应该插入到后端的文件/数据库中,用户可以传递该特定URL的id
  • 如果URL每次都在变化,并且没有办法进入白名单,那么应该防止这种方法进一步损害应用程序。在这种情况下,需要方法的代码片段,并且应该正确地检查方法

  • 那么呢?你的问题是什么?或者你只是在吹牛:D。你的问题也缺少大部分相关的代码。。。无论如何,我确信Checkmarx报告也有解释和建议?我的问题是如何修复这个SSRF漏洞,因为字符串请求,我认为这将是最重要的。
    private String processRequest(final GetMethod method) throws IOException {