improve security
This commit is contained in:
parent
d4a25b8346
commit
2cef92e61f
6 changed files with 827 additions and 824 deletions
|
@ -88,7 +88,7 @@ void SMSubServer::newConnection()
|
|||
}
|
||||
}
|
||||
|
||||
void SMSubServer::messageReceived(QObject *socket, const QByteArray &message)
|
||||
bool SMSubServer::messageReceived(QObject *socket, const QByteArray &message)
|
||||
{
|
||||
// Only allow commands being sent if authenticated
|
||||
bool isAuthenticated = socket->property("Authenticated").toBool();
|
||||
|
@ -155,16 +155,18 @@ void SMSubServer::messageReceived(QObject *socket, const QByteArray &message)
|
|||
QObject::disconnect(localSocket, &QLocalSocket::readyRead, this, &SMSubServer::lsReadyRead);
|
||||
localSocket->write("Incorrect token!\n");
|
||||
localSocket->disconnectFromServer();
|
||||
return false;
|
||||
}
|
||||
else if (type == ServerType::WebSocket) {
|
||||
QWebSocket *webSocket = static_cast<QWebSocket*>(socket);
|
||||
QObject::disconnect(webSocket, &QWebSocket::binaryMessageReceived, this, &SMSubServer::wsMessageReceived);
|
||||
webSocket->sendBinaryMessage("Incorrect token!\n");
|
||||
webSocket->close(QWebSocketProtocol::CloseCodeNormal);
|
||||
}
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void SMSubServer::wsMessageReceived(const QByteArray &message)
|
||||
|
@ -178,7 +180,8 @@ void SMSubServer::lsReadyRead()
|
|||
QLocalSocket *socket = static_cast<QLocalSocket*>(sender());
|
||||
while (socket->canReadLine()) {
|
||||
const QByteArray message = socket->readLine().trimmed();
|
||||
messageReceived(socket, message);
|
||||
if (!messageReceived(socket, message))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ private slots:
|
|||
private:
|
||||
inline void debugOutput(QObject *socket, const QByteArray &message);
|
||||
inline void sendMessage(QObject *socket, const QByteArray &message);
|
||||
void messageReceived(QObject *socket, const QByteArray &message);
|
||||
bool messageReceived(QObject *socket, const QByteArray &message);
|
||||
SMSubServerSettings *serverSettings;
|
||||
QVector<QObject*> sockets;
|
||||
QVector<QString> tokens;
|
||||
|
|
2
main.cpp
2
main.cpp
|
@ -79,7 +79,7 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
a.setApplicationName("Server Manager Subprocess");
|
||||
a.setApplicationVersion("0.3");
|
||||
a.setApplicationVersion("0.3.1");
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
catchUnixSignals({SIGINT, SIGHUP, SIGQUIT, SIGTERM});
|
||||
|
|
Loading…
Reference in a new issue