-6ren"> -我有未 protected JSP,其中存在 XSS 漏洞。我需要替换所有 ${...} 中尚未的字符串标记为 . 例如, label ${bar} 需要将正则表达式替换为以下内-6ren">
gpt4 book ai didi

java - 如何使用正则表达式将所有出现的 ${...} 替换为

转载 作者:行者123 更新时间:2023-12-01 05:21:37 25 4
gpt4 key购买 nike

我有未 protected JSP,其中存在 XSS 漏洞。我需要替换所有 ${...} <c:out value="${...}" />尚未的字符串标记为 <c:out value="${...}" /> .

例如,

<select>
<option value="${foo}">label</option>
</select>
${bar}
<c:out value="${message}" />

需要将正则表达式替换为以下内容:

<select>
<option value="<c:out value="${foo}" />">label</option>
</select>
<c:out value="${bar}" />
<c:out value="${message}" />

最佳答案

听起来您的起始文本混合了 <c:out value="${...}" />${...}在里面。如果是这种情况,您可以尝试这样的操作:

str = str.replaceAll(
"(?:<c:out\\s+value=\")?\\$\\{([^}]*)\\}(?:\"\\s*/>)?",
"<c:out value=\"\\${$1}\" />"
);

我对 Java 正则表达式语法有点生疏,所以请检查一下反斜杠是否正确。否则,我认为这会起作用。

关于java - 如何使用正则表达式将所有出现的 ${...} 替换为 <c :out value ="${...}"/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10320458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com