URL中的HTML和CSS导致404错误(用户代理= Trident / 4.0)

时间:2009-10-04 16:35:23

标签: javascript cookies internet-explorer-8 http-status-code-404 user-agent

我已经在网址中获得了404代码片段(CSS,HTML和JavaScript)。

尽管我可以告诉用户在他们的会话期间正在通过网站进展 - 它是一个电子商务网站,受影响的用户正在把东西放在他们的篮子里并检查确定等。

在某些页面上,我看到404错误与看似成功的页面显示相邻。每次显示该页面时(在该会话中),我都会得到相同的404错误。

记录404错误的示例:

404;http://www.example.com/rrepeat: repeat-y;

有问题的页面上有一个匹配的实例(除了第一个“r”):

<td style="background-image: url(/i/lb_ccccccbrd.gif); background-repeat: repeat-y;">

我已经检查了包含的CSS文件,但没有匹配(并且如果他们这样做,我会在包含CSS文件的所有页面上获得404)

我的想法是,它可能是IE8的插件,它在用户正在查看它以便缓存某些内容时抓住页面 - 或者可能出于更多恶意目的。页面的用户代理和404(在该会话中)是相同的[不知道插件是否会以不同的方式显示给浏览器本身?]

其他例子:

/r/table&gt;&lt;/form&gt;&lt;/td&gt;&lt;td width= 
/r width=

/r alt= 

/rurn pair[1]; --&gt;</SPAN> --&gt;</SPAN>--&gt;</SPAN>function Set_Cookie( name, value, expires, path, domain, secure ) <SPAN style="color:red;font-weight:bold;background-color:yellow;">&lt;!--/ set time, it's in millisecondsvar today = new Date();today.setTime( today.getTime() );/*if the expires variable is set, make the correct expires time, the current script below will set it for x number of days, to make it for hours, delete * 24, for minutes, delete * 60 * 24if ( expires )<SPAN style="color:red;font-weight:bold;background-color:yellow;">&lt;!--expires = expires * 1000 * 60 * 60 * 24;--&gt;</SPAN>*/expires = (3650) * 1000 * 60 * 60 * 24;var expires_date = new Date( today.getTime() + (expires) );document.cookie = name +

所有似乎都以“r”开头,而“r”不是代码的一部分,而是直接来自页面代码的代码段。

该页面通过了w3c.org HTML验证(所以我认为它不是一个非引用的引用,除非我有一些愚蠢的javascript打破HTML !!)

用户代理始终是MSIE 8.0或MSIE 7.0和Trident / 4.0。 (我假设带有Trident的MSIE 7.0在兼容模式下是IE8)

我每天只看到一些这样的实例(少于10个会话),而我每天都会通过用户代理(包括IE8和Trident)获得数百个会话。

感谢。

3 个答案:

答案 0 :(得分:1)

在我看来,你正在处理格式错误的蜘​​蛛或尝试XSS攻击。

如果这种情况发生在小范围内,最好的做法是确保您已锁定应用程序/网站,以免此类攻击失败。

密切关注您的日志。如果像这样的东西频繁出现和/或改变它的攻击向量,你最好知道这些努力的指导地点并作出相应的反应。

最后,“IE8 / Trident”客户端标识符并不特别。它只是声明客户端他们使用Trident布局引擎运行Internet Explorer 8(类似于Safari / WebKit或Mozilla / Gecko)。

答案 1 :(得分:0)

我遇到了同样的问题。在Trident 4.0浏览器上,应用程序会突然开始引用奇怪的js脚本,即

  

/ JS / jqu //%3C [CDATA [VAR%20Paginator_otherActivities%20 =%20new%20Paginator();!Paginator_otherActivities.setUrl(;

这不会影响用户体验,因为网站仍然可以正常显示。我设法找到问题,并在我的本地服务器上重新运行它,发生同样的错误,这让我觉得这不是XSS攻击。

我运行了一些测试,结果发现问题是应用程序试图包含太多 js文件 - 当我减少该数字时,问题就停止了。

我无法找到任何信息,如果它是Trident布局引擎引入的限制,但我记得IE曾经限制了你可以在每个页面上使用多少个css类,所以也许这就是微软试图超越所有人。

答案 2 :(得分:0)

(Trident / 4.0标识IE 8,即使用户代理说IE 7 - IE 8在兼容模式下运行。)IE 8的Lookahead Downloader有一个怪癖,影响跨越任何4096字节的url。生成的结果url是紧接在cutoff之前的字符串和紧跟其后的字符串的串联。它似乎将任何单引号或双引号视为分隔符。如果您使用XHTML,则没有实际的方法可以避免从IE 8用户那里收到这些404错误。