是否有可能伪造在窗口对象上触发的JavaScript传感器事件?

是否有可能伪造在窗口对象上触发的JavaScript传感器事件?,javascript,javascript-events,Javascript,Javascript Events,JavaScript支持多种用于测量移动设备传感器的事件类型。这些事件在窗口对象上触发,例如 window.addEventListener(“deviceorientation”,函数(){ //对设备定向做些什么 },对); addEventListener(“devicemotion”,函数(){ //做些加速的事情 },对); 当触发此类事件时,您是否可以确定浏览器本身(以及最终的用户)是事件的源,或者其他脚本是否可以生成此类事件 换句话说,撇开开发工具不谈,来自完全不同来源的第三方脚

JavaScript支持多种用于测量移动设备传感器的事件类型。这些事件在窗口对象上触发,例如

window.addEventListener(“deviceorientation”,函数(){
//对设备定向做些什么
},对);
addEventListener(“devicemotion”,函数(){
//做些加速的事情
},对);
当触发此类事件时,您是否可以确定浏览器本身(以及最终的用户)是事件的源,或者其他脚本是否可以生成此类事件


换句话说,撇开开发工具不谈,来自完全不同来源的第三方脚本(例如广告或分析脚本)是否可以创建似乎来自硬件传感器的事件

您可以使用Chrome的开发工具伪造这些传感器读数,对于高级JavaScript程序员来说,覆盖负责此操作的内部方法应该不是什么大问题,但只需获取代码并对其进行更改就会容易得多,因此传输什么传感器事件无关紧要


简短版本:不,您不能确定,但这需要一些知识来伪造。

您能更清楚地解释一下“或者其他脚本是否可能生成此类事件”的含义吗?文档的脚本是您的,因此您就是包含它的人。除非您手动触发该事件,否则您可以确保用户是源。此外,即使使用开发人员工具,您也可以手动触发该事件,但只要用户没有通过某些第三方工具包含第三方脚本,您就可以100%确定用户是源,并且永远是。感谢反馈,尝试稍微澄清问题。技术上是的,第三方脚本可以做到这一点,但我认为任何相关的分析脚本都不会做到这一点,或者,如果会,也不会对您的脚本产生重大影响,因此您不必担心:只需在包含外部脚本时小心,并确保源代码没有问题。也就是说,据我所知,广告和分析可能都不能做到这一点。我想你已经触及了问题的核心:撇开开发工具不谈,是否可以覆盖负责生成这些事件的内部方法?看起来你不应该被允许这么做。我认为这是JavaScript强大的一部分,也是为什么这么多年来我们仍然使用这种混乱的语言,有这么多奇怪的怪癖。它非常灵活,这给了开发者很大的自由,但也有可能把事情搞得一团糟。最后,一切都在用户设备上执行,因此,如果有人真的想这样做,一切都可以伪造。