Javascript 将随机十六进制字符插入web源代码

Javascript 将随机十六进制字符插入web源代码,javascript,html,Javascript,Html,仅在某些计算机上,但在所有经过测试的浏览器(Chrome、Safari、IE和Firefox)上,一些随机十六进制代码被插入到我们网页的源代码中。它们似乎每8000个字符就有一行,通常在前后都有一行。以下是出现问题的页面示例: <td align="center" class="rownumber weight_row" style="font-size:23px;font-weight:bold;font-family:Garamond, Arial, Helvetica, sans-

仅在某些计算机上,但在所有经过测试的浏览器(Chrome、Safari、IE和Firefox)上,一些随机十六进制代码被插入到我们网页的源代码中。它们似乎每8000个字符就有一行,通常在前后都有一行。以下是出现问题的页面示例:

<td align="center" 
class="rownumber weight_row" style="font-size:23px;font-weight:bold;font-family:Garamond, Arial, Helvetica, sans-serif" 
id="gamepoints_
1f57
3442">1</td>
<td  align="center">
1
正确的代码如下所示:

<td align="center" 
class="rownumber weight_row" style="font-size:23px;font-weight:bold;font-family:Garamond, Arial, Helvetica, sans-serif"     
id="gamepoints_3442">1</td>
<td  align="center">
1
附加的1f57不在我们的源代码中,它似乎随机出现在整个页面中,在不同的位置中断了代码。它似乎每8000个字符出现一次,通常为1fxx,但可以是20xx或1dxx,其中xx是十六进制数。最难理解的是为什么它只发生在极少数的用户身上(我们有20000个用户,我知道有4个用户发生了这种情况),而我无法在我拥有的任何计算机上实现。另外,对于一个人来说,他去了一个新的地方,问题停止了(用他的笔记本电脑),所以我不确定这是否与IP地址有关。如果您能帮我解决这个问题,我们将不胜感激。这些额外的字符导致javascript代码在页面上失败

更新: web堆栈是CentOS 6.5版、Apache/2.0.64、MySQL 5.1.73、PHP5.2.9。我已经确认我们的服务器正在使用HTTP1.1响应

更新#2: 每个有问题的人都在运行代理。它似乎与传输编码有关:分块。在stackoverflow上找到建议添加标题的内容:

但是,当我在php代码中的文件顶部添加标题(“Transfer Encoding:chunked”)时,页面不会加载


因此,不知何故,头通过这些代理被解释为未进行块编码。有没有一种方法可以让我添加一些东西,让它正确地解释它

这几乎肯定是由用户端的代理造成的

在没有更多信息的情况下,我的最佳猜测是您正在发送一个HTTP1.1响应,但用户的代理将其解释为HTTP1.0(可能是因为它太旧或配置错误)

您可以通过要求他们绕过其代理进行测试,或者使用调试工具检查他们实际接收到的内容,或者强制您对HTTP1.0做出所有响应,看看会发生什么



(如果我必须花钱的话,我会说一个透明的squid代理,很想知道我是否正确!)

也许与分块编码有关?可能您的
内容编码
标题错误。也许你正在向不支持分块编码的客户端发送分块编码(非常旧的浏览器)。@Jim如果你能用wireshark获取请求/响应的捕获信息,那会很有帮助。@t.J.Crowder-你还希望我提供什么其他信息?我确实知道,有一个人在全新安装的Chrome上没有工作,然后他飞到一个新的城市,在那里工作得很好,没有问题。我正在尝试做一些哈米什建议的事情。我将公布我得到的结果。@Jim:你在问题末尾添加的信息就是我想要的。一般来说,当你问一个问题时,最好呆几分钟,这样你就可以回答这样的问题;这使你更有可能得到一个有用的答案。所以,当你大约一个小时没有回复时,我投票决定关闭,因为缺少细节(我现在撤回投票)。页面内容是由PHP动态生成的吗?只是想帮助找出问题所在的层。谢谢-我已经要求他们加载一个页面,该页面将检测他们使用的代理并将结果发送给我。如果你是对的,我会让你知道。以下是我现在知道的-有这个问题的人肯定是在运行代理。我们放了一些代码来检测代理,在每种情况下它都在那里。在他们可以关闭它的地方,它开始正常工作。我还能做些什么来绕过他们的代理吗?我对这些协议和代理知之甚少。我是一名程序员,所以如果您能给我任何帮助,我将不胜感激。我把我们的主持人介绍给这个链接,他们说“请注意,分块传输编码是一种HTTP/1.1功能,目前在服务器上安装的版本上可用。降级到HTTP/1.0在这里不是一个可能的解决方案,因为cPanel现在甚至不支持这些旧版本。在阅读文档时,很少指定选项,例如设置标题上的内容长度以覆盖分块传输编码。“我确实在网站上设置了一个测试页面。对于那些有问题的人,它检测到一个代理并打印出1000行。每80行加一个1f23或类似的东西。这与我们在其他页面上看到的症状相同。我们做了另一个测试页面。这一个在开头有一个php头(“HTTP/1.0 200 OK”),其中有一个元HTTP equiv=“Transfer Encoding”content=“chunked”,但我承认我现在正在抓救命稻草。如果有任何建议,我将不胜感激。最后一件事——我尝试通过一个公共代理,尽管我上面列出的页面确实检测到了代理,但页面上没有1fxx。无论我使用什么网络,我都看不出问题所在,但我有一小部分人(我认为不到1%)拥有它。有些人在使用AT&T网络的iPhone上看到了它(我也看到了,但没有看到)。你知道我如何可能模拟这个问题吗?