关于javascript:对不包含”未定义”的页面的请求

Requests to non-existing pages that all include "undefined”

自2014年10月20日起,一些奇怪的请求出现在我们的日志中。它们每天增加到几十个左右,因此虽然不是大问题,但找出原因仍然很有趣。

早期版本:

1
2
3
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]

一些当前的:

1
2
3
4
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。

原因可能类似于对不存在的全部包含" 6_S3 _"(可能是恶意软件)的页面的奇怪请求,但我想知道这是否可能是不同的原因。

我确实怀疑这是我们客户端Javascript上的错误,因为每天从大约一百万的页面浏览量中,每天会产生数十个这样的请求。

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


这是一个很大的问题,但这不是来自您。

这些是使用自签名根证书的Javascript注入攻击(客户端计算机恶意软件)。

具体来说,sf_main.htmldeals.html已链接到Superfish,而Superfish最近随Lenovo一起提供。随着联想一直在推销其新的PC系列产品,最近有关攻击的报道也爆炸了。

这些中间人攻击始于劫持客户端的请求,然后注入HTML和Javascript。

undefined符号太多的原因是因为Superfish的名字真实,它正在寻找插件,扩展名和库,因此可以利用它们的预期名称,令牌和路径来利用它们。这是蛮力XSS。

哦,不,我该怎么办??

小。不多。

由于请求在客户端计算机上被劫持,并且通过http request劫持,您将不知道它们之间的区别。您可以尝试"钓鱼"某种特定的"指标",但现在您正在做反恶意软件的工作。

联想声称

SuperFish has completely disabled server side interactions (since
January) on all Lenovo products so that the software product is no
longer active, effectively disabling SuperFish for all products in the
market

虽然我相信中国的联想的诚意,而联想在西方世界具有重要的市场利益,但我却不相信中国的恶意软件公司Superfish的话。

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

除非您在大型银行或受欢迎的社交网站工作,否则像Superfish这样的恶意软件极不可能专门针对您。客户的银行帐户和社交网络帐户受到威胁,但不是因为您所做或可以采取的任何行动来阻止它。

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


Any ideas?

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

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

    识别问题的另一种方法是,如果您的网站上运行了诸如Google Analytics(分析)之类的分析解决方案,则可以很容易地将报告限制为仅包含undefinedurl \\。如果没有这样的请求,您可以得出结论认为它必须是机器人程序(因为它不会导致客户端分析代码运行),否则它将提供所有信息以标识导致此问题的原因。

    最后,最好包含一个JavaScript错误记录解决方案(以最简单的形式是window.onerror处理程序,并带有对\\log.something的ajax请求。如果您的代码正在生成undefined \\,那么它\\'很可能也会触发一些错误。

    Is it worth pursuing?

    如果实际上向用户提供了无效页面,那么可以,这肯定是要进行调查的内容。