【问题标题】:Detecting if the person viewing the website is the developer [closed]检测查看网站的人是否是开发人员 [关闭]
【发布时间】:2020-01-14 07:34:17
【问题描述】:

我的website 上有一个查看计数器,它将查看者在网站上花费的时间绘制到Thingspeak chart。我希望它不计算我的观点。所以它应该检测到我。我也许可以更改控制台中布尔值的值,但这是不可行的。我考虑在我的计算机上存储一个 cookie,网站会读取它以查看它是否是我,但随后它的跨站相同站点的东西我不明白。然后我想检查观众的IP地址是否是我的。显然你需要服务器端的东西,而 GitHub 不允许这样做。还有什么想法吗?

【问题讨论】:

  • 你需要定义你想如何识别不应该被计算在内的用户。你可以例如将参数传递给 URL (?do-not-count=1),您可以存储一个 cookie,您可以在 localStorage 中存储一个值,您可以使用基于 IP 的标识(IP 通常在普通机器上不时更改),您可以读取 UserAgent(浏览器自动发送以识别自身的值)。首先,您需要做出决定。
  • @ssc-hrep3 嗯...扩展 UserAgent 的想法。
  • 用户代理的问题在于它们不一定是唯一的。如果您使用的是常用浏览器,那么其他人很可能拥有与您相同的用户代理。
  • UserAgents 通常显示使用的浏览器(版本)、网络引擎、操作系统、设备类型等。它们由浏览器定义并作为请求标头发送到服务器。您可以在命令行上覆盖 UserAgent(例如使用 curl)或在 DevTools 中对其进行调整,例如铬合金。在您的情况下使用不同的方法可能会更好。 @CertainPerformance 与 localStorage 方法的答案看起来很有趣。

标签: javascript html authentication


【解决方案1】:

不使用 IP 检查/后端逻辑的非常简单的 hacky 解决方案是将 localStorage 值设置为正常不应该存在的值。加载网站后,打开浏览器控制台并分配一些内容,例如

localStorage.userIsIshanGoel = 'yes';

然后,在页面上的脚本中,只需在运行增加查看次数的代码之前检查该属性:

if (localStorage.userIsIshanGoel !== 'yes') {
  incrementViewCount();
}

这不是万无一失的 - 例如,有人可以检查页面的源代码并自己设置属性,但如果查看次数仅用于您的个人信息使用,那么这不太可能发生(即使那样,那也只是单个用户)。

【讨论】:

  • 喜欢这种方法。肯定会把它放在我的后口袋里。
  • 如果我想测试这个,我可以先在本地站点上测试吗? Localstorage 听起来像 cookie。是不是很像?
  • @IshanGoel 在本地站点上测试这个,你的意思是在本地主机上?是的,localStorage 也适用于 localhost。
  • 不同之处在于每次请求都会将 cookie 发送到服务器。相反,localStorage 只是客户端,不会随请求一起发送。 Cookie 使身份验证变得容易如果您有可以实现的后端逻辑。 localStorage 仅用于在客户端机器上半永久存储数据。
  • @CertainPerformance 不,我的意思是在浏览器上将文件加载到我的计算机上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 2011-02-22
  • 2010-11-04
  • 1970-01-01
  • 2015-10-13
  • 2019-11-24
  • 1970-01-01
相关资源
最近更新 更多