diff --git a/webserv/handler/CgiHandler.cpp b/webserv/handler/CgiHandler.cpp index 566f21d..8b2eecd 100644 --- a/webserv/handler/CgiHandler.cpp +++ b/webserv/handler/CgiHandler.cpp @@ -7,6 +7,7 @@ #include // for Log, LOCATION #include // for CgiSocket #include // for TimerSocket +#include // for URI #include // for trim #include @@ -27,6 +28,11 @@ void CgiHandler::handle() { Log::info("CgiHandler handling request"); + if (request_.getUri().isCgi() && request_.getUri().getCgiPath().empty() && access(request_.getUri().getFullPath().c_str(), X_OK) != 0) + { + ErrorHandler::createErrorResponse(403, response_); + return; + } // Initialize CGI process cgiProcess_ = std::make_unique(request_, *this);