diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index e96a469bb..ba24b9049 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -173,9 +173,14 @@ WebApplication::~WebApplication() void WebApplication::sendWebUIFile() { - const QStringList pathItems {request().path.split(u'/', Qt::SkipEmptyParts)}; - if (pathItems.contains(u".") || pathItems.contains(u"..")) - throw InternalServerErrorHTTPError(); + if (request().path.contains(u'\\')) + throw BadRequestHTTPError(); + + if (const QList pathItems = QStringView(request().path).split(u'/', Qt::SkipEmptyParts) + ; pathItems.contains(u".") || pathItems.contains(u"..")) + { + throw BadRequestHTTPError(); + } const QString path = (request().path != u"/") ? request().path