【问题标题】:Modifying html repsonse from a webserver before it reaches the browser using a webserver plugin?使用网络服务器插件在网络服务器到达浏览器之前修改来自网络服务器的 html 响应?
【发布时间】:2010-02-05 12:02:21
【问题描述】:

问题就像标题一样简单。我有一个 webapp(我不知道它是基于什么技术构建的,也不知道它运行在什么应用服务器上)。但是,我知道这个 webapp 由 Apache 服务器/IIS 服务器/IBM Http 服务器提供服务。现在,我想在网络服务器端有一个插件/模块/附加组件,它将解析/截断/剪切/正则表达式 http 响应(基于请求的 url 的模式)和掩码(加密/随机播放/替换)此响应中的一组字段基于不同的参数(用户在 Intranet 中的 LDAP 权限/用户在 Internet 上的地理位置等)并将更改后的响应发送回用户。

那么,创建此类插件/模块/附加组件是否有简单的答案?当您想在不修改 Web 应用代码的情况下屏蔽 Web 应用中的敏感信息时,这种在 Web 服务器上创建额外软件的方法有多可行?是否有任何工具可以帮助您为 Apache 执行此操作?

最后,这只是一个非常疯狂的尝试吗?!

【问题讨论】:

  • 修改Web应用程序是最简单的。您是在谈论特定的应用程序吗?也许我们可以帮助您弄清楚它使用的是什么容器。
  • @Jeremy:这是我们正在收集需求的数据屏蔽产品/解决方案背后的概念。产品必须在生成的 html 响应中动态屏蔽值,而与应用服务器无关。

标签: apache http webserver conceptual


【解决方案1】:

每个网络服务器都有自己的方式。

网络服务器没有通用的插件架构。

在 IIS 中,您可以编写 HTTP HandlerHTTP Module,或者可能是 ISAPI Filter。您还可以使用HttpContext 公开的Response 对象直接与http 响应进行交互。

使用 apache,有不同的模块可以做你想做的事(例如mod_headers)。

我对 WebSphere 一无所知,但我确信它也有类似的机制。

大多数网络应用程序都需要您的要求,因此可以内置或非常容易做到。

【讨论】:

  • @Oded 这些不同的模块是什么?
  • 我知道没有通用插件,但是,如果我想了解市场上每个流行的网络服务器都有哪些插件可用。
  • @Jay - 更新了一些细节的答案
  • mod_headers,如果我没记错的话,只能自定义HTTP请求和响应头。 Apache 有什么替代品吗?
【解决方案2】:

最简单的方法是使用 Web 应用程序容器添加插件。例如,如果是Tomcat,则可以添加过滤器或阀门。

如果您想插入网络服务器,则需要使用正在使用的网络服务器的 API 编写自定义模块。

如果一切都失败了,您总是可以将整个服务器包装在反向代理中。所有请求都将通过您的代理,这将使您有机会修改请求和响应。

【讨论】:

    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2020-07-16
    • 2013-01-29
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多