Skip to content

Commit fafe990

Browse files
committed
Add escaping for LogScale
1 parent 85c0c48 commit fafe990

File tree

1 file changed

+12
-6
lines changed
  • siem-converter/app/converter/backends/logscale/renders

1 file changed

+12
-6
lines changed

siem-converter/app/converter/backends/logscale/renders/logscale.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
limitations under the License.
1717
-----------------------------------------------------------------
1818
"""
19+
from typing import Union
1920

2021
from app.converter.backends.logscale.const import logscale_query_details
2122
from app.converter.backends.logscale.mapping import LogScaleMappings, logscale_mappings
@@ -28,35 +29,40 @@
2829
class LogScaleFieldValue(BaseQueryFieldValue):
2930
details: PlatformDetails = logscale_query_details
3031

32+
def apply_value(self, value: Union[str, int]):
33+
if isinstance(value, str) and '"' in value:
34+
value = value.translate(str.maketrans({'"': r'\"'}))
35+
return value
36+
3137
def equal_modifier(self, field, value):
3238
if isinstance(value, list):
3339
return f"({self.or_token.join(self.equal_modifier(field=field, value=v) for v in value)})"
34-
return f'{field}="{value}"'
40+
return f'{field}="{self.apply_value(value)}"'
3541

3642
def contains_modifier(self, field, value):
3743
if isinstance(value, list):
3844
return f"({self.or_token.join(self.contains_modifier(field=field, value=v) for v in value)})"
39-
return f'{field}="*{value}*"'
45+
return f'{field}="*{self.apply_value(value)}*"'
4046

4147
def endswith_modifier(self, field, value):
4248
if isinstance(value, list):
4349
return f"({self.or_token.join(self.endswith_modifier(field=field, value=v) for v in value)})"
44-
return f'{field}="*{value}"'
50+
return f'{field}="*{self.apply_value(value)}"'
4551

4652
def startswith_modifier(self, field, value):
4753
if isinstance(value, list):
4854
return f"({self.or_token.join(self.startswith_modifier(field=field, value=v) for v in value)})"
49-
return f'{field}="{value}*"'
55+
return f'{field}="{self.apply_value(value)}*"'
5056

5157
def regex_modifier(self, field, value):
5258
if isinstance(value, list):
5359
return f"({self.or_token.join(self.regex_modifier(field=field, value=v) for v in value)})"
54-
return f'{field}="/{value}/"'
60+
return f'{field}="/{self.apply_value(value)}/"'
5561

5662
def keywords(self, field, value):
5763
if isinstance(value, list):
5864
return f"({self.or_token.join(self.keywords(field=field, value=v) for v in value)})"
59-
return f'"{value}"'
65+
return f'"{self.apply_value(value)}"'
6066

6167

6268
class LogScaleQueryRender(BaseQueryRender):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy