1

PHP新手,我正在尝试使我的网站防篡改。如果有人在浏览器地址栏中修改了 url,我想重新加载页面 url。我想到的一种方法是将页面 url 存储在会话变量中,以便在需要时重复使用。
下一页 url 来自基于用户选择的 SQL 查询(可能有几十个),所以我事先不知道该 url 是什么。我想做的是恢复当用户单击链接时传输到服务器的地址(当您将鼠标悬停在链接上时,Firefox 在左下角显示的地址)并将其存储在会话变量中. 这可能吗?如果可以,我怎样才能用 PHP 恢复它?

4

1 回答 1

1

您真的不需要多个 URL。您可以在整个页面序列中使用相同的 URL,因为服务器知道下一步该做什么。

了解“有限状态机”以及它们如何帮助您创建一个工作流,该工作流仅允许基于您提供给用户的选择的一组非常有限的操作。您很可能需要为此进行一次会话。

正确完成后,用户无法篡改 URL,因为所有其他 URL 将导致 404 或其他内容,并且尝试摆弄接受用户选择的一个 URL 只有在所需的步骤在允许的步骤列表中时才有效 -否则没有任何改变。

为了显示:

第一个状态是“开始”,允许的转换是“答案 1”和“答案 2”。这些正在过渡到两个结束状态,没有进一步的过渡。因此,每当用户进入“已回答 1”状态时,他就无法进入其他状态,除了创建一个新会话,如果机器状态与会话无关,也可以禁止该会话,而是用户帐户。

于 2013-04-22T20:54:31.640 回答