mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-12 16:23:07 -07:00
[WebUI]: exclude insecure ciphers
This commit is contained in:
parent
84bc011df5
commit
f9c39e3dac
2 changed files with 29 additions and 0 deletions
|
@ -47,6 +47,9 @@ Server::Server(IRequestHandler *requestHandler, QObject *parent)
|
|||
#endif
|
||||
{
|
||||
setProxy(QNetworkProxy::NoProxy);
|
||||
#ifndef QT_NO_OPENSSL
|
||||
QSslSocket::setDefaultCiphers(safeCipherList());
|
||||
#endif
|
||||
}
|
||||
|
||||
Server::~Server()
|
||||
|
@ -103,3 +106,26 @@ void Server::incomingConnection(int socketDescriptor)
|
|||
serverSocket->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef QT_NO_OPENSSL
|
||||
QList<QSslCipher> Server::safeCipherList() const
|
||||
{
|
||||
const QStringList badCiphers = {"idea", "rc4"};
|
||||
const QList<QSslCipher> allCiphers = QSslSocket::supportedCiphers();
|
||||
QList<QSslCipher> safeCiphers;
|
||||
foreach (const QSslCipher &cipher, allCiphers) {
|
||||
bool isSafe = true;
|
||||
foreach (const QString &badCipher, badCiphers) {
|
||||
if (cipher.name().contains(badCipher, Qt::CaseInsensitive)) {
|
||||
isSafe = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isSafe)
|
||||
safeCiphers += cipher;
|
||||
}
|
||||
|
||||
return safeCiphers;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue