我希望这个问题是不言自明的。我正在使用 CAS 服务器设置 Spring Security 环境。因为完全相同的应用程序部署在同一台服务器上,但是可以通过不同的主机名(.de 域、.com 域,可能不止这些)访问服务器,我们希望在测试系统和本地系统上部署相同的应用程序同样,我构建了一个动态服务,其中服务 URL 是从请求 URL 派生的。
public static String makeDynamicUrlFromRequest(ServiceProperties serviceProperties, HttpServletRequest request) {
String serviceUrl = "https://backup-url.de/login";
URI uri = null;
try {
uri = new URI(request.getRequestURL().toString());
} catch (URISyntaxException e) {
logger.error("Someone tried accessing a disallowed service!", e);
}
if(uri != null){
serviceUrl = uri.getScheme() + "://" + uri.getHost() + "/login";
}
return serviceUrl;
}
有可能欺骗这个吗?如果是,额外的正则表达式检查是否为我提供了必要的安全性?