【问题标题】:What identifying information can a website capture?网站可以捕获哪些识别信息?
【发布时间】:2008-09-17 20:35:59
【问题描述】:

如果网站的所有者想要尽可能地跟踪他们的用户是谁,他们可以捕获什么(以及如何捕获)。您可能想了解这一点,以便在您创建的网站上捕获信息,或者作为用户防止网站捕获您的数据。

这是一个起始列表,但我确定我错过了一些重要的:

  1. Referrer(哪个网页有您访问的链接)。这是一个 HTTP 标头。
  2. 您正在浏览的机器的 IP 地址。这适用于 HTTP 标头。
  3. 用户代理(您使用的浏览器)。这是一个 HTTP 标头。
  4. 上次访问时放置的 Cookie。这是一个标头,仅当 cookie 较早放置且未被用户删除时才可用。
  5. 在上次访问时放置的 Flash Cookie。一些用户关闭了 cookie,但非常很少有人知道如何关闭 Flash cookie。尽管它依赖于 Flash,但它的工作方式与普通 cookie 一样。
  6. 网络错误。在第三方提供的页面上放置一些小东西(如透明的单像素 GIF)。一些第三方(例如 DoubleClick)将拥有自己的 cookie,并且可以与用户进行的其他访问相关联(收费!)。

这些是我想到的常见的,但肯定有很多不寻常的。例如,这个:

  1. 用户时钟上的时间。 Use JavaScript 转发。

...我在这里阅读之前从未听说过。


稍后添加(阅读this后):

请尝试每个答案只放一个项目,然后我们可以使用投票来选出更好/更有趣的项目。下面的列表可能不太有效。

嗯...下次我问这样的问题我会设置得更好。


以下是我得到的一些最佳答案:

  1. James指出IE传输.NET框架版本。
  2. AviewAnew 指出可以find what sites you have visited。
  3. Mecki 指出可以确定屏幕分辨率。
  4. Mecki 也指出,您的浏览器缓存的任何自动填充信息都可以通过创建一个隐藏字段,然后使用 JavaScript 读取来确定。
  5. jjrv 指出Flash 可以列出用户机器上的字体。
  6. Kent指出你可以找到what websites a person has visited。
  7. Silver Dragon 指出您可以使用 Flash 和 AJAX 确定鼠标在浏览窗口中的位置。
  8. Jim 指出,您可以通过 HTTP 标头判断用户在浏览器中配置的语言。
  9. Jim 还提到您可以检测人们是否在使用 Greasemonkey 或类似的东西来修改页面。

【问题讨论】:

    标签: security browser


    【解决方案1】:

    对原作的修改:

    1. 可以转义(我认为它在某些浏览器中是一个选项)
    2. 只有通过代理才能避免(javascript 可以通过智能环视来避免这一点)
    3. 不可靠,容易伪造。
    4. 假设它没有被浏览器关闭(会话cookie)擦除并且cookie在同一个域/路径中

    真正讨厌的是

    1. 使用 javascript 探测您的网络/局域网
    2. 使用 javascript 从防火墙后面访问您的防火墙并调整其设置(不是开玩笑)
    3. 使用“已访问链接”的功能来确定已访问的 URL 列表中的哪些。 (深入历史探索!)
    4. 天知道如果用户有 Windows/IE/ActiveX 会怎样

    【讨论】:

      【解决方案2】:
      • 有一个标头可以包含有关用户正在使用的代理服务器的信息,还可以包含用户的 IP 地址(在这种情况下,另一个 IP 是代理的 IP)
      • 屏幕分辨率、操作系统、颜色深度、任务栏大小(比较最大和当前分辨率)、如果启用了 Java、抗锯齿字体、插件全部通过 Javascript 安装
      • Java 小程序也可以为您提供大量信息,但我不知道是什么。
      • Sites you've visited
      • Details of your local network 如活动主机、网络服务器。论文还概述了驱动式打印、驱动式路由器修改

      这一切都假设攻击者没有执行任意代码

      【讨论】:

        【解决方案3】:

        Javascript 可以获得更多信息,而不仅仅是时间。例如。屏幕分辨率(+颜色深度)就是其中之一。

        见Getting Screen Resolution with JS

        JS 可以捕获的所有内容都可以使用 AJAX 传输,而无需用户进行任何交互。其他示例(并非所有浏览器都适用):

        • 它可以查看您的浏览器历史记录,例如如果您后退或前进,您的浏览器会转到哪个 URL。

        • 您的浏览器的语言(注意:通常 HTTP 请求还会包含您请求的页面的首选语言列表。但是,此列表是用户可在许多首选项中编辑的浏览器,而JS实际上可以在界面中找出您的浏览器使用的语言翻译)

        • 如果您的浏览器自动填充表单字段(例如电子邮件、用户名等),JS 实际上可以在您提交表单之前读取您的浏览器在字段中输入的内容(因此它甚至可以读取您的浏览器预先填写在那里,即使您根本没有提交表单)。

        Java 小程序也可以收集一些信息并将其传输,尽管没有多少信息是您在其他地方无法获得的。由于很容易获得访问者的 IP,因此可以找出他正在使用的在线服务(在地址服务中查找 IP,例如美国的 IANA 或欧洲的 RIPE 等),并且有些服务可以将 IP 转换为国家/地区,因此可以找出用户最有可能当前所在的位置。

        【讨论】:

          【解决方案4】:

          一些可能感兴趣的附加信息:

          • 使用 IP 地址,可以解析 IP 所属的主机名、网络提供商/组织以及粗略的地理位置。
          • 使用引用者、指定客户端进行的查询列表和可靠的 cookie 机制,可以解析访问者的路径(甚至通过 AJAX 和/或转发器页面点击到其他方)
          • 使用flash,结合AJAX,可以捕捉浏览窗口内的鼠标位置
          • 用户代理可能包含有关操作系统、已安装的 .NET 框架和其他好奇心的信息

          【讨论】:

            【解决方案5】:

            .NET 框架版本在 IE 中的用户代理中传输。

            【讨论】:

              【解决方案6】:

              Flash 可以为您提供用户机器上的字体列表以及其他内容。当鼠标停在广告上而不点击它时,Javascript 可以发送信息。您还可以获取窗口大小、站点是否在框架中打开、弹出窗口或特定插件是否被阻止、查找 Javascript 功能可以判断用户代理标头是正确的还是伪造的...

              【讨论】:

                【解决方案7】:

                如果您担心自己的人身安全(我不确定您是否真的想要这样做,如果这有误导,我深表歉意),您始终可以使用 Tor 网络。如果您使用火狐,您可以使用Torbutton 进行一键启用。它具有禁用 Flash 的好处(对某些人来说是缺点),因为否则无法防止 Flash 信息泄露。

                【讨论】:

                  【解决方案8】:
                  • 您通常可以通过Accept-Language HTTP 标头确定用户使用哪种语言。
                  • 您可以通过查看Accept HTTP 标头来确定是否安装了某些应用程序和浏览器插件。
                  • 浏览器版本/补丁级别和 .NET 框架版本通过User-Agent HTTP 标头。
                  • 您的 ISP/雇主和地理位置(通过 IP 地址)。
                  • 您是否通过 CSS 和/或定时加载事件访问了特定的 URL。如果特定网站具有特定于用户的 URI,则可能会披露您是否是该网站上的特定用户。
                  • 通过测量 em 和/或 Flash 可以获得哪些字体。
                  • 通过 JavaScript 实现屏幕分辨率、窗口大小、时区。
                  • 通过 JavaScript 移动鼠标和击键的位置。例如,您可以查看人们在文本框中输入的内容,即使他们没有点击提交。
                  • 许多 UserJS/Greasemonkey 脚本会泄露信息(例如,如果您过滤掉某些人,则为其配置的网站可能会找出谁)。

                  【讨论】:

                    【解决方案9】:
                    1. 浏览器能否支持JS
                    2. 浏览器能否支持flash
                    3. 操作系统平台
                    4. 屏幕分辨率
                    5. 支持 CSS
                    6. 支持表格

                    【讨论】:

                    • 你说的“flas”是指“flash”吗?如何测试这些东西?例如,我从来没有听说过能够测试是否支持表……在 EARTH 上怎么会这样做?
                    • 是的,应该是闪存。其中一些是通过 JS 完成的,如果使用 ASP.NET,一些是 .NET 已经为您计算的项目。您可以使用 google 获取您可以找到的项目的良好列表。
                    【解决方案10】:

                    我需要挖掘链接,但是如果用户使用的是 IE,并且安装了常见的软件标题,则可以确定安装了哪些。

                    【讨论】:

                      【解决方案11】:

                      据我所知,可以通过 javascript 获取剪贴板数据。不知道这些天默认情况下它有多大可能,但不久前它风靡一时。我相信 IE 仍然允许它。

                      人们习惯于在剪贴板中留下非常重要的数据,所以这很糟糕。

                      【讨论】:

                        【解决方案12】:

                        来晚了,网站还可以扫描你的端口,找出你正在运行的软件!

                        【讨论】:

                          猜你喜欢
                          • 2014-09-16
                          • 1970-01-01
                          • 2015-03-05
                          • 1970-01-01
                          • 2014-12-28
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多