mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-14 01:03:08 -07:00
Merge pull request #8967 from Chocobo1/protect
Add options to control WebUI security measures
This commit is contained in:
commit
4a51f14328
8 changed files with 105 additions and 21 deletions
|
@ -428,6 +428,9 @@ void WebApplication::configure()
|
|||
m_currentLocale = newLocale;
|
||||
m_translatedFiles.clear();
|
||||
}
|
||||
|
||||
m_isClickjackingProtectionEnabled = pref->isWebUiClickjackingProtectionEnabled();
|
||||
m_isCSRFProtectionEnabled = pref->isWebUiCSRFProtectionEnabled();
|
||||
}
|
||||
|
||||
void WebApplication::registerAPIController(const QString &scope, APIController *controller)
|
||||
|
@ -512,9 +515,11 @@ Http::Response WebApplication::processRequest(const Http::Request &request, cons
|
|||
clear();
|
||||
|
||||
try {
|
||||
// block cross-site requests
|
||||
if (isCrossSiteRequest(m_request) || !validateHostHeader(m_domainList))
|
||||
// block suspicious requests
|
||||
if ((m_isCSRFProtectionEnabled && isCrossSiteRequest(m_request))
|
||||
|| !validateHostHeader(m_domainList)) {
|
||||
throw UnauthorizedHTTPError();
|
||||
}
|
||||
|
||||
sessionInitialize();
|
||||
doProcessRequest();
|
||||
|
@ -525,11 +530,13 @@ Http::Response WebApplication::processRequest(const Http::Request &request, cons
|
|||
print(error.message(), Http::CONTENT_TYPE_TXT);
|
||||
}
|
||||
|
||||
// avoid clickjacking attacks
|
||||
header(Http::HEADER_X_FRAME_OPTIONS, "SAMEORIGIN");
|
||||
header(Http::HEADER_X_XSS_PROTECTION, "1; mode=block");
|
||||
header(Http::HEADER_X_CONTENT_TYPE_OPTIONS, "nosniff");
|
||||
header(Http::HEADER_CONTENT_SECURITY_POLICY, "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none';");
|
||||
|
||||
if (m_isClickjackingProtectionEnabled) {
|
||||
header(Http::HEADER_X_FRAME_OPTIONS, "SAMEORIGIN");
|
||||
header(Http::HEADER_CONTENT_SECURITY_POLICY, "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none';");
|
||||
}
|
||||
|
||||
return response();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue