您是否注意到没有参数的网页的流浪命中?

时间:2008-10-09 09:01:48

标签: firefox ssl parameters browser get

我们有一个Web应用程序,它在URL中传递参数:

www.example.com/ViewCustomer?customer=3945

通常情况下,我们会看到尝试只访问:

www.example.com/ViewCustomer

或者系统将此日志记录为无效并发回“已发生错误,请与支持号码XXX联系支持”类型页面。

我们的日志包含会话信息,因此实际上是某人使用有效会话登录,这意味着他们已成功使用用户名和密码登录。

可能是他们只是输入到地址栏中,但似乎经常发生这种情况。另一种选择是我们的代码中有一个错误,但我们已经调查过,有时只有一个地方,显然可以。我们从来没有让用户抱怨某些不起作用并导致这种情况发生。一切都在SSL下。

还有其他人经历过这个吗?有些浏览器偶尔会发送这些狡猾的请求吗?

编辑:我们的日志显示:

 user-agent = Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

6 个答案:

答案 0 :(得分:2)

您的日志是否包含引荐来源信息?如果有任何信息存在,那么它可以帮助确定错误。如果没有,则可能表示“编辑URL”尝试。 (诚​​然,我不知道SSL会改变多少这一点。)

浏览器有时会prefetch links,但我不知道他们是否会删除参数 - 而且他们似乎不太可能为HTTPS执行此操作。

您是否有关于这些请求使用哪些浏览器的模式?

答案 1 :(得分:1)

我已经看到了我们正在支持的Web应用程序 - 对于已经登录的用户来说,这是一个明显的GET请求,破坏了服务器端状态并导致后续合法POST请求出错。

因为在我们的例子中,URL使用URL重写将sessionid附加到URL,所以GET有时也会有旧的sessionid。

在导致解决此问题的特定日志文件中,这些迷路请求的代理字符串与同一会话中的其余代理字符串不同(尽管有效)。

我确信,而不是浏览器本身,它是一些插件/扩展。代理可能会这样做甚至是恶意软件。

我们通过禁止对相关URI的GET请求来克服这个特殊问题。

然而,现在我正处理一个类似的问题,其中POST请求突然出现在它不应该的位置,唯一的区别在于“accept”标题。

答案 2 :(得分:1)

我现在认为这实际上是一个tomcat bug getParameter() fails on POST with transfer-encoding: chunked

答案 3 :(得分:0)

检查日志中的代理字符串,看看这些请求是否由搜索引擎蜘蛛发出。

答案 4 :(得分:0)

我知道我有时会删除参数只是为了检查那里有什么。我相信我不是唯一一个。

答案 5 :(得分:0)

某些恶意抓取工具会将用户代理更改为浏览器的用户代理和抓取页面。这也可能是这种情况。

此外,大多数抓取工具都会尝试将其他一些值替换为查询参数来获取未链接的页面。