From 9740b33e5bb6cb876474743599934887e8d8ffc7 Mon Sep 17 00:00:00 2001 From: SQ5RWU Date: Fri, 4 Jun 2021 20:33:03 +0200 Subject: [PATCH 1/3] Properly escape JSON --- src/taskWebServer.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/taskWebServer.cpp b/src/taskWebServer.cpp index cfac245..c552e3c 100644 --- a/src/taskWebServer.cpp +++ b/src/taskWebServer.cpp @@ -36,8 +36,13 @@ void sendCacheHeader() { server.sendHeader("Cache-Control", "max-age=3600"); } void sendGzipHeader() { server.sendHeader("Content-Encoding", "gzip"); } String jsonEscape(String s){ - s.replace("\"", "\\\""); - s.replace("\\", "\\\\"); + s.replace("\\", "\\\\"); + s.replace("\"", "\\\""); + s.replace("\n", "\\n"); + s.replace("\b", "\\b"); + s.replace("\f", "\\f"); + s.replace("\n", "\\n"); + s.replace("\t", "\\t"); return s; } From e62a980abbc90a73a7ec024bf2145b26cadb7c85 Mon Sep 17 00:00:00 2001 From: SQ5RWU Date: Fri, 4 Jun 2021 20:33:03 +0200 Subject: [PATCH 2/3] Properly escape JSON --- src/taskWebServer.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/taskWebServer.cpp b/src/taskWebServer.cpp index cfac245..1354487 100644 --- a/src/taskWebServer.cpp +++ b/src/taskWebServer.cpp @@ -36,8 +36,14 @@ void sendCacheHeader() { server.sendHeader("Cache-Control", "max-age=3600"); } void sendGzipHeader() { server.sendHeader("Content-Encoding", "gzip"); } String jsonEscape(String s){ - s.replace("\"", "\\\""); - s.replace("\\", "\\\\"); + s.replace("\\", "\\\\"); + s.replace("\"", "\\\""); + s.replace("\n", "\\n"); + s.replace("\r", "\\r"); + s.replace("\b", "\\b"); + s.replace("\f", "\\f"); + s.replace("\n", "\\n"); + s.replace("\t", "\\t"); return s; } From 151571e15ab36bc93d81cbb87f784e0ef3102676 Mon Sep 17 00:00:00 2001 From: SQ5RWU Date: Fri, 4 Jun 2021 20:59:05 +0200 Subject: [PATCH 3/3] Properly escape JSON --- src/taskWebServer.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/taskWebServer.cpp b/src/taskWebServer.cpp index 1354487..72d25be 100644 --- a/src/taskWebServer.cpp +++ b/src/taskWebServer.cpp @@ -38,12 +38,10 @@ void sendGzipHeader() { server.sendHeader("Content-Encoding", "gzip"); } String jsonEscape(String s){ s.replace("\\", "\\\\"); s.replace("\"", "\\\""); - s.replace("\n", "\\n"); - s.replace("\r", "\\r"); - s.replace("\b", "\\b"); - s.replace("\f", "\\f"); - s.replace("\n", "\\n"); - s.replace("\t", "\\t"); + s.replace("\x7f", "\\\x7f"); + for(char i = 0; i < 0x1f; i++){ + s.replace(String(i), "\\" + String((char)i)); + } return s; }