diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java index 0893bf0eced5733a6c6f4aff5869bbff83d6e659..dd2f324e2d498a1bc9095b944839e1f4d4f448ca 100644 --- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java +++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java @@ -17,6 +17,10 @@ */ package de.thm.arsnova.controller; +import java.net.InetAddress; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.UnknownHostException; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; @@ -69,6 +73,15 @@ public class WelcomeController extends AbstractController { if ("127.0.0.1".equals(request.getRemoteAddr())) { throw new BadRequestException(); } + /* Block requests to servers in private networks */ + try { + final InetAddress addr = InetAddress.getByName(new URL(url).getHost()); + if (addr.isSiteLocalAddress()) { + throw new BadRequestException(); + } + } catch (UnknownHostException | MalformedURLException e) { + throw new BadRequestException(); + } RestTemplate restTemplate = new RestTemplate(); SimpleClientHttpRequestFactory rf = (SimpleClientHttpRequestFactory) restTemplate.getRequestFactory();