History

more housekeeping

Kasen IO committed 6 years ago

Commit 2c7911a1 parent a6dc4941 file · +9 −8Browse 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+9−8
@@ -86,6 +86,8 @@ · 85 unmodified lines
8686
8787 #include "SettingHandle.h"
8888 #include <AddressManager.h>
89+#include <NetworkingConstants.h>
90+
8991
9092 const QString ScriptEngine::_SETTINGS_ENABLE_EXTENDED_EXCEPTIONS {
9193 "com.highfidelity.experimental.enableExtendedJSExceptions"
@@ -2359,14 +2361,13 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 2267 unmodified lines
23592361 } else if (testConstructor.isError()) {
23602362 exception = testConstructor;
23612363 }
2362− }
2363− else {
2364+ } else {
23642365 // ENTITY SCRIPT WHITELIST STARTS HERE
23652366 auto nodeList = DependencyManager::get<NodeList>();
23662367 bool passList = false; // assume unsafe
23672368 QString whitelistPrefix = "[WHITELIST ENTITY SCRIPTS]";
2368− QList<QString> safeURLS = { "file:///", "atp:", "cache:" };
2369− safeURLS += qEnvironmentVariable("EXTRA_WHITELIST").trimmed().split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
2369+ QList<QString> safeURLPrefixes = { "file:///", "atp:", "cache:" };
2370+ safeURLPrefixes += qEnvironmentVariable("EXTRA_WHITELIST").trimmed().split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
23702371
23712372 // IF WHITELIST IS DISABLED IN SETTINGS
23722373 bool whitelistEnabled = Setting::Handle<bool>("private/whitelistEnabled", true).get();
@@ -2377,15 +2378,15 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 4 unmodified lines
23772378 // PULL SAFEURLS FROM INTERFACE.JSON Settings
23782379 QVariant raw = Setting::Handle<QVariant>("private/settingsSafeURLS").get();
23792380 QStringList settingsSafeURLS = raw.toString().trimmed().split(QRegExp("\\s*[,\r\n]+\\s*"), QString::SkipEmptyParts);
2380− safeURLS += settingsSafeURLS;
2381+ safeURLPrefixes += settingsSafeURLS;
23812382 // END PULL SAFEURLS FROM INTERFACE.JSON Settings
23822383
23832384 // GET CURRENT DOMAIN WHITELIST BYPASS, IN CASE AN ENTIRE DOMAIN IS WHITELISTED
23842385 QString currentDomain = DependencyManager::get<AddressManager>()->getDomainURL().host();
23852386
23862387 QString domainSafeIP = nodeList->getDomainHandler().getHostname();
2387− QString domainSafeURL = "hifi://" + currentDomain;
2388− for (const auto& str : safeURLS) {
2388+ QString domainSafeURL = URL_SCHEME_HIFI + "://" + currentDomain;
2389+ for (const auto& str : safeURLPrefixes) {
23892390 if (domainSafeURL.startsWith(str) || domainSafeIP.startsWith(str)) {
23902391 qCDebug(scriptengine) << whitelistPrefix << "Whitelist Bypassed. Current Domain Host: "
23912392 << nodeList->getDomainHandler().getHostname()
@@ -2399,7 +2400,7 @@ void ScriptEngine::entityScriptContentAvailable(const EntityItemID& entityID, co · 7 unmodified lines
23992400 if (ScriptEngine::getContext() == "entity_server") { // If running on the server, do not engage whitelist.
24002401 passList = true;
24012402 } else if (!passList) { // If waved through, do not engage whitelist.
2402− for (const auto& str : safeURLS) {
2403+ for (const auto& str : safeURLPrefixes) {
24032404 qCDebug(scriptengine) << whitelistPrefix << "Script URL: " << scriptOrURL << "TESTING AGAINST" << str << "RESULTS IN"
24042405 << scriptOrURL.startsWith(str);
24052406 if (!str.isEmpty() && scriptOrURL.startsWith(str)) {