我可以从用户的浏览器中了解到哪些意想不到的事情?

What unexpected things can I learn about a user from their browser?

本文关键字:意想不到 了解到 用户 浏览器 我可以      更新时间:2023-09-26

我正在给一群高中生做演示,演示网页可以从他们的手机上告诉他们意想不到的事情——即使他们没有登录或其他什么。到目前为止,我选择了一些大多数人都知道的东西,比如:

设备操作系统

特定的手机(除非你用的是iPhone,否则只能用iPhone)

语言设置

和一些更模糊的东西:

Carrier(访问远程服务并返回JSONP,因为js是IP幼稚的)

电池电量/充电状态(直到今天我才知道你可以这样做)

你能想到其他类似的酷/恐怖的东西吗?我可以从UA/Navigator/等中挖掘出来?他们中的大多数都在Android或iOS上运行Chrome(幸运的是,并不是每个浏览器都支持电池)。主要的活动是关于移动安全和网络钓鱼,所以我想坚持用手机。

快速编辑:为了清楚起见,我正在建立一个他们会去的网站,这个网站将实际演示这些功能-所以不幸的是,他们需要实现,至少在Chrome中,而不是计划/草案。

你应该提到地理位置。一个有能力的javascript库,例如MaxMind或Google Analytics,可以用来精确定位用户的地理位置。

从钓鱼的角度来看,我认为这是最重要的,有几个危险的事情:

钓鱼

  • 如果没有附加组件,浏览器通常不会在你访问的地址中有一个字母不同时警告你。即使URL方案禁止零宽度字符和其他Unicode字符,您仍然可以监督l(小写L), 1 (one), I(大写I).也有许多Unicode字符看起来像正常字母。也许unicode字符有黑名单,比如希腊字母。检查这个网站来玩。您可以尝试创建一些域名,如stackoverflow.com与希腊ο
  • JavaScript可以在域名后修改URL 。但我已经很多年没见过给用户命名文件夹的主机了。尽管如此,看到URL改变而不重新加载还是令人毛骨悚然的:

    window.history.pushState("object or string", "Title", "/new-url");
    
  • 不确定这是否适用,但去年HackADay.com透露了一个黑客,你可以在鼠标按钮按下链接后改变<a> href,有效地改变目标URL。但是,你也可以使用javascript重定向浏览器…
个人资料

  • 为此,我要做的第一件事是在MDN上检查WindowDocument。这绝对会揭示一些很酷的东西,让电池电量信息只是微不足道的可怕尝试:

    • 窗口:
      • 窗口。Ondevicemotion——做它所建议的。假设您也可以Window.addEventListener("devicemotion", ...)
      • Window.ondevicelight -这是非常令人毛骨悚然的,但Firefox只有
      • 窗口。ondeviceorientation -为设备移动提供更多广泛支持的事件。想要近似你的用户走过的路径并在画布上画出来吗?或者做一个应用程序,尖叫着"放下国王手机。"直到他们把它放在桌子上?"
      • 还有,有上百万的方法来获取各种屏幕属性。其中一些被用来猜测操作系统版本,因为不同的操作系统有不同的菜单栏占用不同的屏幕部分。
    • 文档:

      • document.referrer -想要跟踪你的用户吗?
      • 您可以通过创建元素来检测广告拦截插件的存在:

        <div id="advertisment" 
          class="ad advertisment ads banner"
          style="pointer-events: none;position: absolute; opacity: 0;">NOTHING
        </div>
        
      • 获取.getBoundingClientRect()并断言非零维度。
    • 您可以检测文档何时被firebug检查。(或者在过去,当firebug实际上在DOM中添加元素以突出显示节点时,您可以这样做)。这些元素在Firebug中是不可见的,但会触发DOM突变事件。
  • 用户确认后,可以录制声音和视频
  • 我曾经创建了一个脚本,能够流所有的DOM突变在服务器上允许我观看其他用户使用网站实时。但不幸的是我没有完成到生产状态。但是这就是我如何发现firebug问题的。
  • 还有其他的技巧来检查调试工具是否正在运行。这些通常是各种各样的黑客,尝试谷歌一些东西。
  • 曾经想知道如果你的用户有CORS启用 localhost HTTP服务器运行?我是说,难道不值得一试吗?
  • WebWorkers允许您在客户端机器上生成线程。您可以将其用于分布式处理或仅用于燃烧其电池。因为它不会直接影响GUI线程,他们不会注意到,直到为时已晚。此外,这听起来像一个伟大的方式来产生口令破解和破解证书。
  • 您可以更改复制的文本,可能添加跨站点脚本hack到它。好的技巧是用一堆空格来抵消你的脚本,这样在没有文本换行的典型文本编辑器中就看不到了。
  • 使用桌面通知,你可以假装你是防病毒,windows更新…

这些呢…

  • 你可以根据搜索历史来分析他们的兴趣。
  • 他们访问的频率和地点。
  • 建立他们访问的时间配置文件。
  • 现场时间
  • 用户在哪些页面上花费的时间最多。
  • 基于热点区域的页面点击或鼠标光标所在位置的配置文件。
  • 您可以配置典型的用户行为。

所有这些的结果是-推动数据个性化营销,即你所看到的是有针对性的你,作为一个个体(谷歌在他们的广告中经常这样做)