如何处理请求参数中的 Json 和 HTML santization?
How to handle both Json and HTML santization from request parameters?
如何正确编码查询参数。我通过进行清理的 Anti Samy 传递数据。接下来我需要传递清理后的字符串 unescapeHtml4 方法。因为有时我有 Json 作为我的请求参数(见下面的示例 1)。
目前我的代码如下:
String str = StringEscapeUtils.unescapeXml(xml);
ClearResult cr = antiSamy.scan(str);
String cleanStr = cr.getCleanHTML();
String s = StringEscapeUtils.unescapeHtml4(cleanStr);
示例 1:Json 作为请求:
如果我删除第 4 行,我最终会得到 {" name ": " Mav "}
示例 2:以下脚本的转义结果:< script >alert("hi") < script >
如果我保留第 4 行,我很容易受到 XSS 攻击。
如何解决这个问题?我想同时处理 JSON 和 HTML 请求参数。任何帮助将不胜感激。
根据参数应包含的内容/您计划对数据执行的操作来处理参数。
当参数包含您要解码的 json 时,请不要对其使用反义词。
当参数包含您将输出为 html 的文本时,请对其使用反义词。
当一个参数包含 json 时,它本身包含一些您将输出为 html 的值,然后首先将参数解码为 json,然后对各个值使用 antisamy来自您计划输出为 html.
的 json
Antisamy 有特殊用途。处理您希望允许包含 HTML 标签的文本。不要对任何其他数据使用反义词。相反,请确保在输出您不想明确允许包含 HTML 标记的用户的任何文本期间转义 html 语法。
据我所知,如果你想要只有一个函数处理 JSON 和 HTML,你最好在之后手动替换转义码。其他选择是将 JSON 与 HTML 分开。
这取决于要求和完整的场景。
如何正确编码查询参数。我通过进行清理的 Anti Samy 传递数据。接下来我需要传递清理后的字符串 unescapeHtml4 方法。因为有时我有 Json 作为我的请求参数(见下面的示例 1)。
目前我的代码如下:
String str = StringEscapeUtils.unescapeXml(xml);
ClearResult cr = antiSamy.scan(str);
String cleanStr = cr.getCleanHTML();
String s = StringEscapeUtils.unescapeHtml4(cleanStr);
示例 1:Json 作为请求:
如果我删除第 4 行,我最终会得到 {" name ": " Mav "}
示例 2:以下脚本的转义结果:< script >alert("hi") < script >
如果我保留第 4 行,我很容易受到 XSS 攻击。
如何解决这个问题?我想同时处理 JSON 和 HTML 请求参数。任何帮助将不胜感激。
根据参数应包含的内容/您计划对数据执行的操作来处理参数。
当参数包含您要解码的 json 时,请不要对其使用反义词。
当参数包含您将输出为 html 的文本时,请对其使用反义词。
当一个参数包含 json 时,它本身包含一些您将输出为 html 的值,然后首先将参数解码为 json,然后对各个值使用 antisamy来自您计划输出为 html.
的 jsonAntisamy 有特殊用途。处理您希望允许包含 HTML 标签的文本。不要对任何其他数据使用反义词。相反,请确保在输出您不想明确允许包含 HTML 标记的用户的任何文本期间转义 html 语法。
据我所知,如果你想要只有一个函数处理 JSON 和 HTML,你最好在之后手动替换转义码。其他选择是将 JSON 与 HTML 分开。
这取决于要求和完整的场景。