gpt4 book ai didi

javascript - 如何阻止用户编辑 URL

转载 作者:行者123 更新时间:2023-12-05 01:06:02 24 4
gpt4 key购买 nike

我目前正在制作一个回答问题的网站,但我遇到了问题。即例如回答第二个问题,但用户想回到上一个问题编辑答案时,有2种方式:

  1. 使用浏览器的撤消按钮
  2. 更改网址

ex: question?id=2 change to question?id=1

网络将重新加载上一个问题,他们可以更改答案。

我已经阻止了方法#1,但是如果用户更改了 URL,我不知道如何阻止它?想请教一下,我用的是js,如果用vue3 ts就更好了。

最佳答案

如果您想阻止用户输入问题 #1 的新答案,那么您需要在服务器上保留一些状态。维护问题列表,跟踪哪些问题已回答,哪些未回答。您请求 question?id=1 时提供的页面和服务器状态使得用户已经回答了问题 #1 应该是显示错误或只是强制它转到第一个未回答的问题,通过重定向或仅提出问题 2 或其他合理的方式。但底线是服务器需要状态。

这就像,如果我进入我的银行页面并在浏览器中编辑我的余额以在我的银行账户余额末尾添加几个 000,它实际上不会改变我银行中的金额,只是在本地显示的内容。要实际更改银行余额,我必须向服务器发出请求,导致我的余额发生更改。

你也一样。如果您不想接受已提交问题的新答案,那么您将知道页面何时尝试提交答案。该页面可能会使用用户对问题 1 的答案进行 POST,并且服务器将答案保存在某处。如果浏览器针对同一问题执行另一个 POST(因为用户破解了 URL),您可以简单地拒绝请求并拒绝更改服务器状态,返回某种错误,例如“您已经回答了该问题”。

您在此事件中为用户提供的体验并不那么重要(他们在进行黑客攻击),但为了做一些合理的事情,请考虑将浏览器重定向到正确的问题。下一个未回答的问题可能是对“您已回答该问题”REST 响应的响应的一部分。

关于javascript - 如何阻止用户编辑 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69998401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com