我最近在我的网站上添加了一个自定义window.onerror函数,向我发送任何面临javascript问题的客户端,我不会通过本地遇到这些问题 测试
奇怪的是,只要启用此功能,我就会开始从用户代理" Mozilla / 5.0(兼容; Baiduspider / 2.0; + http://www.baidu.com/search/spider.html)"中获取消息。
这里有一些由百度机器人提供给onerror功能的示例数据。
eventPhase: 3
currentTarget: [object DOMWindow]
cancelable: false
target: [object HTMLScriptElement]
bubbles: true
type: error
cancelBubble: false
clipboardData: undefined
srcElement: [object HTMLScriptElement]
defaultPrevented: false
timeStamp: 1441375534468
returnValue: true
stopPropagation: function stopPropagation() { [native code] }
preventDefault: function preventDefault() { [native code] }
initEvent: function initEvent() { [native code] }
stopImmediatePropagation: function stopImmediatePropagation() { [native code] }
CAPTURING_PHASE: 1
AT_TARGET: 2
BUBBLING_PHASE: 3
MOUSEDOWN: 1
MOUSEUP: 2
MOUSEOVER: 4
MOUSEOUT: 8
MOUSEMOVE: 16
MOUSEDRAG: 32
CLICK: 64
DBLCLICK: 128
KEYDOWN: 256
KEYUP: 512
KEYPRESS: 1024
DRAGDROP: 2048
FOCUS: 4096
BLUR: 8192
SELECT: 16384
CHANGE: 32768
这与网站获得的任何其他错误调用不同。通常我会收到一条实际的错误消息,但是使用百度机器人它只是一大堆数据。
我很好奇有人对此有更多了解吗? 我只能假设网站上的实际javascript没有问题,因为僵尸程序是唯一发送此类错误的客户端。机器人是否可能只是将自己的javascript注入网站的源代码并且包含一些错误,或者机器人故意调用window.onerror来查看网站对它的反应或类似的东西?< / p>