【问题标题】:Regex for Masking Data in a JSON Array用于屏蔽 JSON 数组中的数据的正则表达式
【发布时间】:2024-07-30 12:20:02
【问题描述】:

我需要使用 Splunk 索引器上的正则表达式来屏蔽数组内的传入 JSON 请求。 JSON 数据如下所示:

{"Name":["Jobs","Bill"]}

我希望屏蔽传入的数据,使其看起来像这样:

{"Name":["******","******"]}

我用来屏蔽数据的正则表达式如下所示:

s/\"Name\":\"[^"]*\"/"Name":"******"/g

但由于某种原因,我无法屏蔽 JSON 数据。请各位好心人帮忙看看?

【问题讨论】:

  • 这毫无意义。我建议阅读以下内容:Can I encrypt my JSON data?
  • @MaciejLos,我浏览了您提供的链接,但这对我来说没有多大帮助:(

标签: arrays json regex splunk data-masking


【解决方案1】:

你可以使用

s/(?:\G(?!^)\",|\"Name\":\[)\"\K[^\"]*/******/g

要支持转义的\",请使用

s/(?:\G(?!^)\",|\"Name\":\[)\"\K[^\"\\]*(?:\\.[^\"\\]*)*/******/g

查看regex demo #1regex demo #2

详情

  • (?:\G(?!^)\",|\"Name\":\[) - 前一个匹配的结尾,然后是 ", 子字符串,或 "Name":[ 子字符串
  • \" - " 字符
  • \K - 匹配重置运算符丢弃所有匹配的文本
  • [^\"]* - 除" 之外的任何零个或多个字符。
  • [^\"\\]*(?:\\.[^\"\\]*)* - 除 "\ 之外的任何 0+ 个字符,然后是 \ 的零个或多个重复,后跟除换行符之外的任何字符,然后是除 \ 和 @ 之外的任何 0+ 个字符987654339@.

【讨论】:

  • 这成功了!!非常感谢!
最近更新 更多