diff options
| author | RblSb <msrblsb@gmail.com> | 2020-07-18 14:42:13 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2020-07-18 14:42:13 +0300 |
| commit | 8636d8156b591a9d1ebcc95a188491e88561aca6 (patch) | |
| tree | c6f4742b885c541a62ed7617fddd311728e30ea0 /src | |
| parent | 2f8739d53ac6c90424756eb463d8d82bb8d4bfeb (diff) | |
Improve data validation
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/Main.hx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/Main.hx b/src/server/Main.hx index ee8de26..f0c3d7a 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -294,7 +294,7 @@ class Main { ws.on("message", data -> { final obj = wsEventParser.fromJson(data); - if (wsEventParser.errors.length > 0) { + if (wsEventParser.errors.length > 0 || noTypeObj(obj)) { final line = 'Wrong request for type "${obj.type}":'; final errorLines = ErrorUtils.convertErrorArray(wsEventParser.errors); final errors = '$line\n$errorLines'; @@ -312,6 +312,16 @@ class Main { }); } + function noTypeObj(data:WsEvent):Bool { + if (data.type == GetTime) return false; + if (data.type == TogglePlaylistLock) return false; + if (data.type == UpdatePlaylist) return false; + if (data.type == Logout) return false; + final t:String = cast data.type; + final t = t.charAt(0).toLowerCase() + t.substr(1); + return js.Syntax.strictEq(Reflect.field(data, t), null); + } + function onMessage(client:Client, data:WsEvent, internal:Bool):Void { logger.log({ clientName: client.name, |
