Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌分析如何避免欺骗?_Javascript_Security_Api_Node.js - Fatal编程技术网

Javascript 谷歌分析如何避免欺骗?

Javascript 谷歌分析如何避免欺骗?,javascript,security,api,node.js,Javascript,Security,Api,Node.js,所以我一直在想谷歌分析如何避免欺骗。当然,当你注册一个帐户时,他们会让你通过上传一个文件来验证你拥有这个域。但也会给您一些带有唯一公共代码的脚本标记(替换为下面的“XXXXXXX”)。是什么阻止了有人复制这些代码,欺骗请求头,并通过使用curl执行谷歌的身份验证策略来假装是我的站点 <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'XXXXXXX']); _

所以我一直在想谷歌分析如何避免欺骗。当然,当你注册一个帐户时,他们会让你通过上传一个文件来验证你拥有这个域。但也会给您一些带有唯一公共代码的脚本标记(替换为下面的“XXXXXXX”)。是什么阻止了有人复制这些代码,欺骗请求头,并通过使用curl执行谷歌的身份验证策略来假装是我的站点

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'XXXXXXX']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

var _gaq=_gaq | |[];
_gaq.push([''u setAccount',XXXXXXX']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
})();
我问这个问题的原因是因为我正试图创建一个类似的JavaScript插件,将我的网站数据公开给参与网站(“客户端”)。我不确定在客户端服务器端没有私钥的情况下如何获得此功能。这有点糟糕,因为我真的想要“像谷歌分析一样容易集成”。有什么想法吗?

有趣的问题

正如评论所暗示的,谷歌并没有真正解决这个问题。事实上,在登台站点/dev框中使用条件代码/预处理功能来禁用GA是很常见的,因为如果不这样做,它会把你的数字搞砸

您可以在分析服务器、客户服务器和客户机上尝试一种三条腿的方法。它可以像这样工作:

  • 客户服务器和您的分析服务器共享一个密钥。当客户访问客户的站点时,客户的服务器会告诉您的分析服务器它希望开始跟踪该特定客户

  • 您的分析服务器为该用户生成会话id,并将动态URL返回到客户的服务器。URL指向注入会话ID的JavaScript跟踪代码(或其加载程序)

  • 客户的服务器将页面发送到客户机。该页面包含具有唯一会话ID的客户端跟踪代码。操作将被跟踪并发送到分析服务器

  • 在分析服务器上,您可以从客户机接收跟踪信息。检查会话ID是否有效且未过期,以及IP地址是否匹配

这应该提供额外的安全级别。不幸的是,它不会像“谷歌分析那样容易集成……”它会涉及到客户的服务器端参与。它对跟踪未经客户验证的用户也没有多大帮助,因为第三方可以访问客户的网站获取有效的会话ID,然后向分析服务器发送一些虚假信息。但是,对于通过客户站点验证的客户端,它可能会很有用


祝你好运

听起来这个问题真的与谷歌分析无关(我真的建议你把它从你的问题中删除,因为我认为这会误导大多数人,不会让你更接近你的答案)

您有一些数据,只想与选定的站点共享。除了使用某种授权方案保护数据,然后为所选站点提供某种密码或密钥,使其能够访问数据,而其他未提供密钥的站点将无法访问数据之外,没有其他方法可以做到这一点。即使是这种方案也只能在访问数据的代码位于服务器的私有区域(可以保护密钥/密码)而不是浏览器中的javascript的情况下工作


至于GA欺骗(我不认为这与你真正的问题有任何关系),我怀疑谷歌对此并不太担心,因为除了一般对GA的拒绝服务攻击(我怀疑他们确实有防范措施)之外,为其他人的网站记录点击有什么好处?无论是谁,都无法访问数据,因为数据位于其他人的GA帐户中。我想如果有人试图把他们的GA数字搞砸,可能会让人感到恼火,但没有更有利的动机,可能没有很多人这么做。

@freejosh我认为谷歌解决了这个问题,不是因为我的网站很重要,而是因为所有使用其分析软件的网站的完整性都很重要。然而,这个问题与谷歌关系不大,而与这一特定战略的安全性关系更大。在这种情况下,你如何防止欺骗?@RepWhoringPeeHaa我不完全确定你的意思,但这与谷歌无关。这是关于如何确保一个网站是一个真正的网站,而不是一个抓取公共标识符并更改请求头的欺骗者?@jmort253,SSL与任何事情都有什么关系?API令牌是公共的,我同意OP的观点,即如何防止欺骗是一个奇怪的难题。@KirkWoll-如果它是公共的,那么如何防止它通过客户端和服务器之间的端口80侦听器被读取?如果你在桥上向巨魔大声喊出密码,让其他人听到,那么他们也可以使用同样的,现在不安全的密码过桥。我的观点是,如果你想对任何东西进行身份验证,你必须安全地进行。此外,谷歌分析不会阻止其他数据被记录。试试看,只要把你的JS代码放在一个你站在某处的小网站上就行了。您将看到数据。防止数据写入GA的唯一方法是使用过滤器将其过滤掉。在op的案例中,他没有接收数据,而是共享数据,这与谷歌分析的做法正好相反,这意味着他可能正在尝试