gpt4 book ai didi

java - 无法确定哪个 tomcat 过滤器会删除我们在过滤器链中的自定义 tomcat 过滤器注入(inject)到 httpservletresponse 中的数据

转载 作者:行者123 更新时间:2023-11-28 23:05:09 26 4
gpt4 key购买 nike

假设您有以下过滤器链:

过滤器 1 ====> 过滤器 2 ====> 过滤器 3 ====> 我们的自定义过滤器 ====> 过滤器 4 ====> 过滤器 5

<====过滤器 1<====过滤器 2<==== 我们的自定义过滤器 <====过滤器 3<====过滤器 4 <=== = 过滤器 5

我们正在注入(inject)自定义数据结构^

问题是我们在执行“查看源代码”时在网络浏览器中看不到注入(inject)的数据。

所以我们很明显,过滤器 1 或 2 正在删除注入(inject)的数据。实际上有更多的过滤器(可能有 30 个或更多)。我们正在尝试确定哪个过滤器是删除我们注入(inject)数据的罪魁祸首过滤器。

有没有一种方法可以将数据写入无法修改的 HttpServletResponse,如果尝试修改,Java 会抛出异常?这样它会立即揭露罪魁祸首。

当您尝试确定代码何时尝试访问已释放的对象时,例如在 Objective-C 中启用僵尸。

更多细节(如果您有兴趣):

我们注入(inject) httpservletresponse 的数据结构是一个被“script”标签包围的 JSON 数据结构,因为我们使用 jQuery 来解析它以获得一堆与用户界面相关的东西。

有趣的是,如果我们尝试注入(inject)像“hello stackoverflow”这样的随机字符串,我们可以在网络浏览器中执行“查看源代码”时看到这个字符串。所以我们的直觉是,无论什么过滤器正在剥离我们的结构,都可能在寻找恶意脚本并将我们的东西拉出来。

最佳答案

当然;您可以编写一个只读响应包装器并使用它继续过滤器链。

Trivial response wrapper example (它不会做你想做的,它只是展示了如何做。)

我不相信这是最简单的事情,因为您可以在现有过滤器“之间”转储响应,而无需进行任何编码,只需配置即可。

关于java - 无法确定哪个 tomcat 过滤器会删除我们在过滤器链中的自定义 tomcat 过滤器注入(inject)到 httpservletresponse 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935994/

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