编辑:这个问题与任何以@mario标记的重复帖子无关
如果这种情况也发生在你身上,请看@monkeyzeus的答案。
我有一个非常基本的php/mysql脚本,在数据库中插入一行。但是出于某种原因,我发现如果我想通过在chrome/firefox的url栏中输入url来运行脚本,但是没有完成它,只需单击已经访问过的选项-我的脚本会执行两次。
我使用的是chrome最新的64位版本,内部版本:69.0.3497.100。
firefox:62.0(64位)(似乎在v63中已经修复了?)
这是预期的行为还是潜在的错误?如果不是bug,有人能解释一下为什么会这样吗?
编辑:
请重新打开这个问题,因为我的问题与重复的帖子无关,马里奥提到。。。
正确答案是“蒙基宙斯”。
1条答案
按热度按时间2eafrhcq1#
这里的关键是,永远不要通过get请求执行潜在的破坏性操作。总是,总是这样做,通过邮政和保护那些对csrf使用令牌。
在你不知情的情况下,可以通过各种方式预取、预加载、刮取、成像或以其他方式访问链接。翻译工具、书签截图工具、便笺管理器应用程序和其他工具将加载任何get请求,而无需考虑后果。
想象一下,如果你有一个链接删除了一些东西,我可以猜出那个网址是什么。我可以给您发送一封带有图像标签的电子邮件,如:
然后该用户立即被删除,无需确认。你甚至不知道发生了什么。这就是为什么接受通过邮政是至关重要的。