aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/traccar/Context.java4
-rw-r--r--src/main/java/org/traccar/config/Keys.java8
2 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/Context.java b/src/main/java/org/traccar/Context.java
index c44d432b2..ee14f8a1a 100644
--- a/src/main/java/org/traccar/Context.java
+++ b/src/main/java/org/traccar/Context.java
@@ -294,7 +294,9 @@ public final class Context {
}
objectMapper = new ObjectMapper();
- objectMapper.registerModule(new SanitizerModule());
+ if (config.getBoolean(Keys.WEB_SANITIZE)) {
+ objectMapper.registerModule(new SanitizerModule());
+ }
objectMapper.registerModule(new JSR353Module());
objectMapper.setConfig(
objectMapper.getSerializationConfig().without(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS));
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java
index dc6bcbec9..f5299b90b 100644
--- a/src/main/java/org/traccar/config/Keys.java
+++ b/src/main/java/org/traccar/config/Keys.java
@@ -553,6 +553,14 @@ public final class Keys {
Collections.singletonList(KeyType.GLOBAL));
/**
+ * Sanitize all strings returned via API. This is needed to fix XSS issues in the old web interface. New React-based
+ * interface doesn't require this.
+ */
+ public static final ConfigKey<Boolean> WEB_SANITIZE = new ConfigKey<>(
+ "web.sanitize",
+ Collections.singletonList(KeyType.GLOBAL));
+
+ /**
* Path to the web app folder.
*/
public static final ConfigKey<String> WEB_PATH = new ConfigKey<>(