Javascript 对不存在的页面的请求,所有页面均包含;未定义”;

Javascript 对不存在的页面的请求,所有页面均包含;未定义”;,javascript,http,undefined,server,Javascript,Http,Undefined,Server,自2014年10月20日以来,我们的日志中出现了一些奇怪的请求。它们已经增加到每天几十个,所以虽然不是什么大问题,但找出原因仍然很有趣 早期的: REQUEST[/en/undefinedsf_main.jsp?clientVersion=null&dlsource=null&CTID=null&userId=userIdFail&statsReporter=false] REFERER[http://colnect.com/en/coins] REQUEST[/

自2014年10月20日以来,我们的日志中出现了一些奇怪的请求。它们已经增加到每天几十个,所以虽然不是什么大问题,但找出原因仍然很有趣

早期的:

REQUEST[/en/undefinedsf_main.jsp?clientVersion=null&dlsource=null&CTID=null&userId=userIdFail&statsReporter=false] REFERER[http://colnect.com/en/coins]
REQUEST[/fr/undefined/GoogleExtension/deals.html?url=http://colnect.com&subid=STERKLY&appName=HypeNet&pos=2&frameId=buaovbluurbavptkwyaybzjrqweypsbavwrviv] REFERER[http://colnect.com/fr]
REQUEST[/br/stamps/undefined49507173c45043eba6dfb9da540e52de&chnl=slmbBRex&evt=DailyPing&prd=vbates&seg=1&ext=1&rnd=65983fb77b62e25cc2a8ef15af18273d] REFERER[http://colnect.com/br/stamps/countries]
目前的一些:

REQ[/ru/collectors/collector/undefined] REF[http://colnect.com/ru/collectors/collector/jokitsos]
REQ[/th/collectors/collector/undefined] REF[http://colnect.com/th/collectors/collector/VRABEC]
REQUEST[/en/account/undefined] REFERER[http://colnect.com/en/account/request_password]
REQUEST[/pt/stamps/undefined] REFERER[http://colnect.com/pt/stamps/years]
有些请求是由登录的成员提出的,有些则不是

我猜他们浏览器上的一些Javascript正试图通过一些未初始化的变量(即“未定义”)调用url

原因可能类似于(可能是恶意软件),但我想知道这是否是一个不同的原因

我确实怀疑这是我们客户端Javascript上的一个bug,因为这样每天会从大约一百万次的页面浏览中生成几十个这样的请求

有什么想法吗?值得追求吗

有什么想法吗

这里似乎有两种不同的选择:

  • 代码中存在错误,导致生成不正确的URL
  • 有(搜索)机器人试图解析您的Javascript,但未能正确执行
  • (客户端扩展正在引发问题)
  • 要区分两者,您需要设置更具体的日志记录。例如,将用户代理添加到包含字符串
    undefined
    的任何日志行将回答此问题。如果是您的代码导致了问题,您还希望记录
    referer
    标题,因为它将暴露在生成错误URL的页面上

    另一种确定问题的方法是,如果您的站点上运行了分析解决方案,如Google analytics,您可以很容易地将报告限制为仅包含
    未定义
    url
    。如果没有这样的请求,您可以断定它必须是一个bot(因为它不会导致客户端分析代码运行),否则它会提供所有信息来确定问题的起因

    最后,最好包含一个javascript错误日志解决方案(最简单的形式是
    窗口.onerror
    处理程序,带有对
    \log.something
    的ajax请求)。如果您的代码正在生成
    未定义的
    ,则很可能也会触发一些错误


    值得追求吗


    如果用户实际收到的是无效页面,那么是的,这肯定是需要调查的问题。

    这是一个很大的问题,但这不是你的问题。

    这些是使用Javascript注入攻击(客户端计算机恶意软件)

    具体来说,
    sf_main.html
    deals.html
    已经链接到了,这是联想最近推出的产品。随着联想不断推出其新的个人电脑系列,最近爆发的攻击事件

    这些攻击首先劫持客户端的请求,然后注入HTMLJavascript

    之所以有这么多未定义的
    符号,是因为Superfish,顾名思义,正在寻找插件、扩展和库,它可以利用它们预期的名称、标记和路径。这就是蛮力XSS

    哦,不,我能做什么?? 很少,不多

    由于请求在客户端计算机上被劫持,并且通过
    http请求
    劫持,您将不知道两者之间的区别。您可以尝试“捕获”某些敌对的“指示器”,但现在您正在做反恶意软件的工作

    联想认为

    SuperFish已完全禁用服务器端交互(自 1月)在所有联想产品上,使软件产品 更长的活动时间,有效地禁用SuperFish,适用于 市场

    虽然我相信总部位于中国的联想的诚意,它在西方世界有着重要的市场利益,但我不会相信总部位于中国的恶意软件公司Superfish的话

    与客户相比,这些攻击对您来说不是什么问题

    除非你在一家大银行或流行社交网站工作,否则像Superfish这样的恶意软件不太可能专门针对你。你客户的银行和社交网络帐户处于风险之中,但不是因为你做了什么或可以做什么来阻止它


    一如既往,客户端钓鱼攻击的解决方法是良好的客户端保护。

    如果没有相关代码,我们就无能为力。你说的相关代码是什么意思?这可能不是关于我们这边的代码,而是关于来自客户端的请求。如果我们的Javascript代码可疑,那么显然可以在REF[]或REFERER[]上找到它链接的页面。我认为用户不会手动输入该url(除非有意破坏系统)。可能您使用JS生成了一些url,但一些变量未定义?可能您是指仅包含
    .text()的项目的
    .val()
    option。由于我在代码中找不到任何地方可以这样做,我怀疑可能是第三方JS(GA/FB/…)造成的。这就是我开始问这个问题的原因。@Collector你说你怀疑客户端,因为“这将每天从大约一百万次的页面浏览中产生几十个这样的请求。”您还声明用户代理是多种多样的,因此这不是浏览器边缘情况。恶意软件的可能性很低,尤其是当用户代理包括非windows用户时。如果您为数百万人服务的应用程序没有可能生成错误URL(或刷新页面并附加未知段塞)的边缘情况,那么这听起来真的像是一些随机的糟糕的浏览器扩展。我在您包含的任何链接中都没有发现任何关于服务器日志中出现“未定义”的内容。您是如何得出结论的,有什么证据可以证明这一点的?@Collector,我断言1)这些