diff --git a/lib/requestHandler.js b/lib/requestHandler.js index 6a6c6c034..062553ba4 100644 --- a/lib/requestHandler.js +++ b/lib/requestHandler.js @@ -295,6 +295,14 @@ function getUserReqHandler(userRule, recorder) { // construct the original headers as the reqheaders req.headers = util.getHeaderFromRawHeaders(req.rawHeaders); + // refer to https://github.com/alibaba/anyproxy/issues/555 + // prevent request to proxy port + const selfIpAddresses = util.getAllIpAddress() + selfIpAddresses.push('localhost') + + const isSelfIpAddress = selfIpAddresses.find((ip) => host === `${ip}:${reqHandlerCtx.httpServerPort}` && req.method !== 'CONNECT') + if (isSelfIpAddress) return userRes.writeHead(405).end() + logUtil.printLog(color.green(`received request to: ${req.method} ${host}${path}`)); /**