简体   繁体   English

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

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

I'm giving a class of high school students a demo of unexpected things a webpage can tell about them from their mobile - even if they're not signed in or anything. 我正在给一班高中生一个网页可以通过他们的手机告诉他们的意外事情的演示 - 即使他们没有登录或任何东西。 So far I have picked a couple of things most people would know about, like: 到目前为止,我已经选择了一些大多数人都知道的事情,比如:

Device OS 设备操作系统

Specific handset (unless you're on iPhone, then it's just iPhone) 特定的手机(除非你在iPhone上,然后它只是iPhone)

Language setting 语言设置

And a couple of more obscure things: 还有一些比较模糊的东西:

Carrier (hitting a remote service and returning JSONP since js is IP naive) 运营商(点击远程服务并返回JSONP,因为js是IP天真的)

Battery level / charge status (I didn't even know you could do this until today) 电池电量/充电状态(我甚至不知道你可以这样做直到今天)

Can you think of anything else cool / creepy in a similar vein that I can dig out of UA / Navigator / etc? Ucon / Navigator /等我能想到的其他任何酷/令人毛骨悚然的东西你能想到吗? Most of them are running Chrome under Android or iOS (which is lucky, not every browser supports the battery thing). 他们中的大多数都是在Android或iOS下运行Chrome(幸运的是,不是每个浏览器都支持电池的东西)。 The main event is about mobile safety and phishing so I'd like to stick to mobile phones. 主要活动是关于移动安全和网络钓鱼,所以我想坚持使用手机。

Quick edit: for clarity, I'm building out a site they will go to which will actually demo these features - so unfortunately they need to be implemented, at least in Chrome, vs planned / drafts. 快速编辑:为了清楚起见,我正在构建一个他们将去实际演示这些功能的网站 - 所以不幸的是,他们需要实施,至少在Chrome中,与计划/草稿相比。

You should mention geographic location. 你应该提到地理位置。 A competent javascript library eg MaxMind or Google Analytics can be used to pinpoint to geographical location of users. 一个称职的JavaScript库,例如MaxMind或Google Analytics,可用于查明用户的地理位置。

From the phishing point of view, which I consider most important, there are several dangerous things: 从网络钓鱼的角度来看,我认为最重要的是,有几个危险的事情:

Phishing 网络钓鱼

  • Without add-ons, browsers will not usually warn you if there's one letter different in the address you're visiting. 如果没有附加组件,浏览器通常不会警告您,如果您访问的地址中有一个字母不同。 Even though URL scheme forbids zero-width characters and other Unicode nastiness, you still can oversee l (lowercase L), 1 (one), I (upper case I). 即使URL方案禁止零宽度字符和其他Unicode肮脏,你仍然可以监督l (小写L), 1 (一), I (大写I)。 There are also many unicode characters that look like normal alphabet. 还有许多unicode字符看起来像普通字母。 Maybe there's some blacklist on unicode characters like greek letters. 也许在希腊字母之类的unicode字符上有一些黑名单。 Check this site to play around . 检查这个网站玩 You can try to create some domain name like stackoverflow.com with greek ο . 您可以尝试使用希腊ο创建一些像stackoverflow.com这样的域名。
  • JavaScript can alter URL after domain name . JavaScript可以域名更改URL But I haven't seen hosting that would give users folder names in years. 但我还没有看到托管会给用户多年的文件夹名称。 Still, it's creepy to see URL change without reload: 但是,如果没有重新加载,看到URL更改是令人毛骨悚然的:

     window.history.pushState("object or string", "Title", "/new-url"); 
  • Not sure if this applies, but last years HackADay.com revealed a hack where you can change <a> href after mouse button was pressed on link, effectively changing the target URL. 不确定这是否适用,但去年HackADay.com发现了一个黑客,您可以在链接上按下鼠标按钮后更改<a> href,从而有效地更改目标URL。 But then again, you can also redirect browser using javascript... 但话说回来,您还可以使用javascript重定向浏览器...

Personal data 个人资料

  • For this, the first thing I'd do is to check Window and Document on MDN. 为此,我要做的第一件事是检查MDN上的WindowDocument This is definitely gonna reveal some cool stuff that leaves battery power info just puny attempt to be scary: 这肯定会揭示一些很酷的东西,留下电池电量信息只是微不足道的尝试是可怕的:

    • Window: 窗口:
      • Window.ondevicemotion - does what it suggests. Window.ondevicemotion - 做它的建议。 assume you can also Window.addEventListener("devicemotion", ...) 假设你也可以Window.addEventListener("devicemotion", ...)
      • Window.ondevicelight - this one is very creepy but Firefox only Window.ondevicelight - 这个非常令人毛骨悚然但只有Firefox
      • Window.ondeviceorientation - much more widely supported event for device movement . Window.ondeviceorientation - 更广泛支持设备移动事件。 Wanna approximate the path your user walks and draw it on canvas? 想近似用户走路的路径并在画布上绘制它? Or make an application that screams " Put the fu king phone down.*" until they put it on the table? 或者制作一个应用程序,尖叫着“ 把傅王手机放下来。*”直到他们把它放在桌子上?
      • Also, there's like million methods to get various screen properties . 此外,还有百万种方法可以获得各种屏幕属性 Some of those were exploited to guess OS version, as different OS's have different menu bars taking different screen portion. 其中一些被利用来猜测操作系统版本,因为不同的操作系统有不同的菜单栏占用不同的屏幕部分。
    • Document: 文献:

      • document.referrer - Wanna track your users? document.referrer - 想跟踪您的用户?
      • You can detect presence of ad-blocking addons by creating elements like: 您可以通过创建以下元素来检测广告拦截插件的存在:

         <div id="advertisment" class="ad advertisment ads banner" style="pointer-events: none;position: absolute; opacity: 0;">NOTHING </div> 

        Then fetch .getBoundingClientRect() and assert non-zero dimensions. 然后获取.getBoundingClientRect()并断言非零维度。

    • You can detect when document is being inspected by firebug . 您可以检测firebug正在检查文档的时间 (or you could in past, when firebug actually added elements in DOM to highlight nodes). (或者你可以在过去,当firebug实际上在DOM中添加元素以突出显示节点时)。 These elements are invisible in Firebug but fire DOM mutation events. 这些元素在Firebug中是不可见的,但是会触发DOM突变事件。
  • If user confirms, sound and video can be recorded . 如果用户确认, 则可以录制声音视频
  • I once created a script that was able to stream all DOM mutations on server allowing me to watch other user using web-site real-time. 我曾经创建了一个脚本,能够在服务器上传输所有DOM突变 ,允许我使用网站实时观看其他用户。 But I didn't finish it to production state unfortunately. 但不幸的是,我没有把它完成到生产状态。 But this is how I found about the firebug issue. 但这就是我发现萤火虫问题的方法。
  • There are other tricks to check if debug tools are running. 还有其他技巧可以检查调试工具是否正在运行。 These are usually various hacks, try to google something. 这些通常是各种黑客,尝试谷歌的东西。
  • Ever wondered if your users have CORS enabled localhost HTTP server running? 有没有想过你的用户是否有运行CORS的 localhost HTTP服务器? I mean, isn't it worth a try? 我的意思是,不值得一试吗?
  • WebWorkers allow you to spawn threads on client machine. WebWorkers允许您在客户端计算机上生成线程。 You could use this for distributed processing or just to burn their battery . 您可以将其用于分布式处理或仅用于刻录电池 As it doesn't affect GUI thread directly, they won't notice until it's too late. 因为它不会直接影响GUI线程,所以在它为时已晚之前不会注意到它们。 Also this sounds like a great way to generate hask cracks and crack certificates. 这听起来像是生成hask裂缝和破解证书的好方法。
  • You can alter copied text , possibly adding cross-site script hacks into it. 您可以更改复制的文本 ,可能会将跨站点脚本黑客添加到其中。 Good trick is to offset your script with a shitload of spaces, so that it's not seen in typical text editor without text-wrap. 好的技巧是用一大堆空格来抵消你的脚本,这样在没有文本换行的典型文本编辑器中就看不到它了。
  • Using Desktop notification , you can pretend you're an antivirus, windows update... 使用桌面通知 ,你可以假装你是一个防病毒软件,Windows更新...

What about any of these... 这些怎么样......

  • You can profile their interests base off search history. 您可以根据搜索历史记录他们的兴趣。
  • Frequency they visit and from what locations. 他们访问的频率和来自哪些地点。
  • Build a profile of what time in the day they visit. 建立他们访问当天的时间档案。
  • Time spent on site 在网站上花费的时间
  • What pages they spend most amount of time on. 他们花了大量时间在哪些页面上。
  • Profile based of hot area's on page clicks or where mouse curer is. 基于热点区域的页面点击或鼠标治疗器的位置。
  • You can profile typical user behaviour. 您可以分析典型的用户行为。

The result of all of this is - Pushing data personalized marketing ie what your seeing, is targeted to you, as an individual (google does this a lot with their ad's) 所有这一切的结果是 - 推动数据个性化营销,即您所看到的,针对您的个人(谷歌对他们的广告做了很多)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 什么是 Angular 4,我可以从哪里了解更多信息? - What is Angular 4 and from where I can learn more about it? 在哪里可以了解如何使用开发人员浏览器书签(语言,框架,IDE,技术等)? - where can I learn about how do developer browser bookmarklets (language, framework, IDE, techniques etc)? JavaScript可以从Ruby学到什么? - What can JavaScript learn from Ruby? 用户可以在<img> src 属性? - What malicious things can a user do in an <img> src attribute? 这个算法更优化的解决方案是什么? 我觉得我可以从这个问题中学到更多 - What is a more optimized solution for this algorithm? I feel i can learn more from this question 最好和最完善的用户浏览器“指纹识别”功能,以识别关于访问者的尽可能多的数据? - Best and most complete user browser “finger printing” to identify as much data as I can about a visitor? 我可以从Android浏览器JavaScript获得什么信息? - What information can I get from the android browser JavaScript? 在哪里可以了解专门用于游戏开发的高级网络编程? - Where can I learn about advanced network programming, specifically for game development? 如何获取用户浏览器中当前网页的高度和宽度? - How can I retrive what height and width of a web page are currently in the user's browser? 我可以查看浏览器的事件循环以了解预定执行的JS的顺序吗? - Can I view the event loop of a browser to learn the order of JS scheduled for execution?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM