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