Http 用户的浏览器似乎每天多次触发请求

Http 用户的浏览器似乎每天多次触发请求,http,opera,Http,Opera,我们有一个触发电子邮件的HTTP GET URL。该URL是通过邮件发送的,因此如果没有进一步的后果,就不可能将其设置为POST URL 目前我们面临的问题是,用户每天会收到多次此类确认邮件 我的理论是,URL会在某个选项卡中打开,或者每次用户打开浏览器时都会被预取,从而触发电子邮件 有没有可能告诉浏览器不要自动加载这样的URL 或者是唯一需要点击额外按钮的确认页面选项 用户代理是Mozilla/5.0 Windows NT 6.1;WOW64;rv:27.0 Gecko/20100101 Fi

我们有一个触发电子邮件的HTTP GET URL。该URL是通过邮件发送的,因此如果没有进一步的后果,就不可能将其设置为POST URL

目前我们面临的问题是,用户每天会收到多次此类确认邮件

我的理论是,URL会在某个选项卡中打开,或者每次用户打开浏览器时都会被预取,从而触发电子邮件

有没有可能告诉浏览器不要自动加载这样的URL

或者是唯一需要点击额外按钮的确认页面选项

用户代理是Mozilla/5.0 Windows NT 6.1;WOW64;rv:27.0 Gecko/20100101 Firefox/27.0

编辑:URL基本上是公共的,但其中有一个用户标识令牌。我知道浏览器要求确认重新发布数据,但我不知道他们在GET URL上要求这样的确认。 我知道,GET URL不应该导致任何其他操作,但在这种特定情况下,我们在电子邮件的按钮中有URL,希望直接导致操作


所以我的问题更像是:我可以告诉浏览器,这个URL调用两次是危险的,也就是说,表现得像一个POST URL,例如通过一个特定的头浏览器通常不允许从特定的域执行这样的代码段,因为从最终用户浏览器的角度来看,这些都是安全漏洞。你的理论对我来说似乎是正确的,因为当我断开并重新连接我的笔记本电脑到互联网时,通常所有chrome浏览器的标签都会在点击后刷新。您可以从负载平衡器或web/app server日志中获取用户计算机的IP,以进行一次确认

但是,即使你找到了一个“告诉”浏览器的解决方案,我相信不是所有的浏览器都会允许。考虑到搜索引擎偶尔也会调用公开的GET URL来刷新索引,拥有一个确认页面和/或将其设置为POST调用肯定会使其更加健壮

GET、HEAD、OPTIONS和TRACE方法被定义为安全的,这意味着它们只用于检索数据。这使得它们也是幂等的,因为多个相同的请求的行为是相同的,但在这里,GET:D的情况似乎有点不同

如果这不能改变,另一种方法可能是在特定的时间间隔内限制特定用户的电子邮件数量,所有这些都是从服务器端完成的


请参阅此处的相关讨论:

我没有要求进行黑客攻击:-D我会澄清我的问题。哦,这是我想到的第一个词。我编辑了我的帖子:有趣的是它们都是幂等的,因为它们都触发了相同的邮件。。这不是故意的。我的理解是,不总是发送电子邮件会使他们在理论上变得不那么幂等。我的“另一种方法”只是一种攻击:D,谢谢你接受这篇文章作为答案。如果我们把电子邮件队列看作一个服务器端资源,那么它的状态正在改变,不是吗?它是旧的,但有一个外观:另一条是: