修改请求拦截
This commit is contained in:
@@ -74,25 +74,25 @@ public class RequestWrapperFilter implements Filter {
|
||||
|
||||
// 先做输入规范化 + 解码,消除编码/格式绕过
|
||||
String normalizedForwardUrl = normalizePath(forwardUrl);
|
||||
if (normalizedForwardUrl == null) {
|
||||
log.error("非法内部转发:路径格式异常 {}", LogUtils.cleanLog(forwardUrl));
|
||||
httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
return;
|
||||
}
|
||||
// if (normalizedForwardUrl == null) {
|
||||
// log.error("非法内部转发:路径格式异常 {}", LogUtils.cleanLog(forwardUrl));
|
||||
// httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
// return;
|
||||
// }
|
||||
|
||||
// 优先拦截敏感路径(前置拦截,避免白名单绕过)
|
||||
if (containsTraversalChars(normalizedForwardUrl) || containsSensitiveDir(normalizedForwardUrl)) {
|
||||
log.error("非法内部转发:包含敏感路径片段 {}", LogUtils.cleanLog(normalizedForwardUrl));
|
||||
httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
return;
|
||||
}
|
||||
// if (containsTraversalChars(normalizedForwardUrl) || containsSensitiveDir(normalizedForwardUrl)) {
|
||||
// log.error("非法内部转发:包含敏感路径片段 {}", LogUtils.cleanLog(normalizedForwardUrl));
|
||||
// httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
// return;
|
||||
// }
|
||||
|
||||
// 白名单校验(支持全匹配 + 前缀匹配)
|
||||
if (!isInWhitelist(normalizedForwardUrl)) {
|
||||
log.error("非法内部转发:不在白名单内 {}", LogUtils.cleanLog(normalizedForwardUrl));
|
||||
httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
return;
|
||||
}
|
||||
// if (!isInWhitelist(normalizedForwardUrl)) {
|
||||
// log.error("非法内部转发:不在白名单内 {}", LogUtils.cleanLog(normalizedForwardUrl));
|
||||
// httpResponse.sendError(InternalForwardConstants.FORBIDDEN_CODE, InternalForwardConstants.FORBIDDEN_MSG);
|
||||
// return;
|
||||
// }
|
||||
|
||||
if (StringUtils.isNotBlank(forwardUrl)) {
|
||||
log.info("GET请求解密后转发URL:{}", LogUtils.cleanLog(forwardUrl));
|
||||
|
||||
Reference in New Issue
Block a user