2012-10-11 40 views
3

我们目前正面临一个奇怪的问题,我们不知道是什么原因导致了这一点。HttpResponse正在被修改

我们有一个web服务托管在serverA上。 当从serverB调用此Web服务时(使用命令curl http://serverA:8008/service/getId),我们获得所需的响应。 (Web服务返回一个整数的Id)。

当同一网络的服务是从服务器C调用,我们获得所需的响应,但在响应中位数是越来越受_取代。

例如,当从服务器B调用web服务时,我们得到。 当同一Web服务从服务器C调用,我们得到500_1

我们检查从serverA上Wireshark的细节和数据从serverA的走出去,是您在服务器相同。

我们目前没有线索为什么会发生这种情况。我想补充一点,serverC在DMZ中,而serverB不在。

在这方面的任何输入/帮助是高度赞赏。

+1

我听说过网络交换机可能导致损坏但保持CRC完好无损的情况,当您从serverA运行curl时,返回值是否会返回OK? –

+0

@Gearoid - 是的,从任何服务器发出命令时,我们都看不到任何问题。它只有在从serverC调用它时才会发生。 –

+1

serverA和serverC之间是否有防火墙? –

回答

1

感谢大家的努力,现在问题已解决。这是造成这种情况的不正确的防火墙规则。我问我们的网络工程师防火墙设置中可以如何改变HTTP响应的身体和下面是我得到的回答是:

对于某些协议,防火墙就深层次数据包检测, 因此而不仅仅是检查的端口号就实际上会查看 有效负载。这使得它可以阻止恶意软件,可能会利用漏洞等的格式错误的分组。所以它知道要检查什么 你必须在规则中指定什么是流量,所以你说它是在端口8008上的 ,它是HTTP。问题在于,由于某种原因,此 规则已设置为使用端口8008,但流量类型设置为 被动模式FTP而不是HTTP。一旦我将其更正为HTTP,它就开始工作。

-2

这是Apache的一项功能,旨在隐藏HTTPresponce的部分内容。 我没有立即看到修复程序,也没有时间看现在。我将在稍后尝试编辑一个。

如果你想尝试找到它,这里是链接到文件:http://xianshield.org/guides/apache2.0guide.html

使用[按Ctrl] + [F]至觉得这种说法(不qoutes)“配置和构建Apache服务器”

+0

抱歉,上面的链接没有提供任何有关该问题的信息。你能否就此提供更多的意见? –

+4

这是我见过的最荒谬的答案。前提是Web服务器将“隐藏”HTTP协议的一部分?就像那样有工作的机会。它就像在说“我们要说英语,但只有没有动词或名词”。 –

+0

责备Apache服务器,而不是我 – Azulflame

0

试着把ServerB放在DMZ中,看看会发生什么。
如果它的行为相同,则表示网络问题。
如果不是,您可能在服务器上有2个不同版本的代码。

0

这听起来对我来说就像你在URL中有特殊字符,并且它们会导致覆盖端口号,但前提是字符集中的字符被识别。你可以使用十六进制编辑器来检查URL的特殊字符(特别是退格)?

0

我无法解决您的问题,但寻找路径上的任何代码转换器。 从服务器C发送请求到服务器A. 1)wireshark at A,查看它是否正确接收请求。一个可能的代码转换器可能会将无主机地址转换为主机地址(GET/service/getId GET GET http:// serverA:8080/service/getId),或者可能会丢弃主机地址等。但是,如果您没有看到任何错误,步骤2.

2)wireshark在B处,查看响应是否有效。看看Content-Type是否设置正确。如果设置正确,仍然被操纵尝试添加头缓存控制:无变换。许多代码转换器都尊重这一点。如果这也失败了,并且无法删除任何可能的代码转换器,那么您可能需要执行第3步的病毒。

3)只要转到https,它就可以免疫这些事情。

1

通过收集事实

1. Server doesn't change the response by its own. 
2. Web Service is giving the same response for the same input. 

唯一的罪魁祸首是你的防火墙,你可以阻止它用于测试目的,看看是否如预期的响应即将到来。 OR 尝试检查防火墙设置并为Web服务创建漏洞/例外。

+0

@saravana_pc这应该被标记为答案,因为这里的答案正是你发现的! – renegadeMind

+0

@renegadeMind - 请参阅上面的“10月18日15:43”我的评论。很久以前,防火墙就成了问题。但问题是,防火墙造成了这种情况。 –