History

Fixes bug where empty "" whitespace allows all scripts.

Kasen IO committed 6 years ago

Commit 2de388a1 parent fe66dc81 file · +6 −7Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 1 file). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+6−7
@@ -2363,24 +2363,23 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 2362 unmodified lines
23632363 }
23642364 }
23652365 else {
2366− // IF YOU FUCK UP, DELETE FROM HERE TO...
2367− QList<QString> safeURLS = { "https://FAKEURL.t43wt4g4g44FAKE" };
2368− safeURLS += qEnvironmentVariable("EXTRA_WHITELIST").split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
2366+ // ENTITY SCRIPT WHITELIST STARTS HERE
2367+ QList<QString> safeURLS = { "" };
2368+ safeURLS += qEnvironmentVariable("EXTRA_WHITELIST").trimmed().split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
23692369
23702370 // PULL SAFEURLS FROM INTERFACE.JSON Settings
23712371
23722372 QVariant raw = Setting::Handle<QVariant>("private/settingsSafeURLS").get();
2373− QStringList settingsSafeURLS = raw.toString().split(QRegExp("\\s*[,\r\n]+\\s*"));
2373+ QStringList settingsSafeURLS = raw.toString().trimmed().split(QRegExp("\\s*[,\r\n]+\\s*"), QString::SkipEmptyParts);
23742374 safeURLS += settingsSafeURLS;
23752375
23762376 // END PULL SAFEURLS FROM INTERFACE.JSON Settings
23772377
23782378 bool isInWhitelist = false; // assume unsafe
23792379 for (const auto& str : safeURLS) {
2380− // qDebug() << "CHECKING" << entityID.toString() << scriptOrURL << "AGAINST" << str;
23812380 qCDebug(scriptengine) << "Script URL: " << scriptOrURL << "TESTING AGAINST" << str << "RESULTS IN"
23822381 << scriptOrURL.startsWith(str);
2383− if (scriptOrURL.startsWith(str)) {
2382+ if (!str.isEmpty() && scriptOrURL.startsWith(str)) {
23842383 isInWhitelist = true;
23852384 qCDebug(scriptengine) << "Script approved.";
23862385 break; // bail early since we found a match
@@ -2410,7 +2409,7 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 23 unmodified lines
24102409 exception = testConstructor;
24112410 }
24122411 }
2413− // DELETE UP TO HERE, THEN UNCOMMENT BELOW.
2412+ // ENTITY SCRIPT WHITELIST ENDS HERE, uncomment below for original full disabling.
24142413
24152414 // qDebug() << "(disabled entity script)" << entityID.toString() << scriptOrURL;
24162415 // exception = makeError("UNSAFE_ENTITY_SCRIPTS == 0");