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

时间:2015-10-19 08:11:20

标签: javascript user-agent navigator

我正在给一班高中生一个网页可以通过他们的手机告诉他们的意外事情的演示 - 即使他们没有登录或任何东西。到目前为止,我已经选择了大多数人都会知道的一些事情,例如:

设备操作系统

特定的手机(除非你在iPhone上,然后它只是iPhone)

语言设置

还有一些比较模糊的东西:

Carrier(点击远程服务并返回JSONP,因为js是IP天真的)

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

你能想到我能从UA / Navigator /中挖掘出来的其他任何酷/令人毛骨悚然的东西吗?他们中的大多数都是在Android或iOS下运行Chrome(幸运的是,不是每个浏览器都支持电池的东西)。主要活动是关于移动安全和网络钓鱼,所以我想坚持使用手机。

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

3 个答案:

答案 0 :(得分:1)

你应该提到地理位置。一个称职的JavaScript库,例如MaxMind或Google Analytics可用于查明用户的地理位置。

答案 1 :(得分:0)

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

钓鱼

  • 如果没有加载项,浏览器通常不会警告您,如果您访问的地址中有一个字母不同。即使URL方案禁止零宽度字符和其他Unicode肮脏,您仍然可以监督l(小写L),1(一),I(大写字母I)。还有许多unicode字符看起来像普通字母。也许在希腊字母之类的unicode字符上有一些黑名单。检查this site to play around。您可以尝试使用greek ο创建一些域名,例如stackoverflow.com。
  • JavaScript can alter URL after domain name。但我还没有看到托管会给用户多年的文件夹名称。不过,看到URL更改而没有重新加载是令人毛骨悚然的:

    window.history.pushState("object or string", "Title", "/new-url");
    
  • 不确定这是否适用,但去年HackADay.com发现了一个黑客,您可以在链接上按下鼠标按钮后更改<a> href,从而有效地更改目标URL。但话说回来,您还可以使用javascript ...
  • 重定向浏览器

个人资料

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

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

      • 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突变事件。
  • 如果用户确认,则 soundvideo可以录制
  • 我创建了一个能够在服务器上传输所有 DOM突变的脚本,允许我使用网站实时观看其他用户。但不幸的是,我没有把它完成到生产状态。但这就是我发现萤火虫问题的方法。
  • 还有其他技巧可以检查调试工具是否正在运行。这些通常是各种黑客,试着谷歌的东西。
  • 您是否想知道您的用户是否正在运行已启用CORS的 localhost HTTP服务器?我的意思是,不值得一试吗?
  • WebWorkers允许您在客户端计算机上生成线程。您可以将此用于分布式处理,或仅用于刻录电池。因为它不会直接影响GUI线程,所以在它为时已晚之前不会注意到它们。这听起来像是产生散列裂缝和破解证书的好方法。
  • 您可以更改复制文本,可能会在其中添加跨站点脚本黑客。好的技巧是用一大堆空格来抵消你的脚本,这样在没有文本换行的典型文本编辑器中就看不到它。
  • 使用Desktop notification,您可以假装自己是防病毒软件,Windows更新...

答案 2 :(得分:-1)

其中任何一个......

  • 您可以根据搜索历史记录他们的兴趣。
  • 他们访问的频率和来自哪些地点。
  • 建立他们访问当天的时间档案。
  • 在网站上花费的时间
  • 他们花了大量时间在哪些页面上。
  • 基于页面点击的热区域或鼠标治疗器的位置的配置文件。
  • 您可以描述典型的用户行为。

所有这一切的结果是   - 推动数据个性化营销,即您所看到的目标    你,作为一个人(谷歌用他们的广告做了很多)