PHP新手,我正在尝试使我的网站防篡改。如果有人修改了浏览器地址栏中的url,我想重新加载页面url。我想到的一种方法是将页面url存储在一个会话变量中,以便在需要时重用。
下一个页面url来自一个基于用户选择的SQL查询(可能有几十个),所以我事先不知道这个url是什么。我想要做的是恢复地址,当用户点击一个链接时,该地址被传输到服务器(当你将鼠标悬停在链接上时,Firefox在左下角显示的地址),并将其存储在一个会话变量中。这是可能的吗?如果可能,我如何用PHP恢复它?
发布于 2013-04-23 04:54:32
你真的不需要一个以上的URL。您可以在整个页面序列中使用相同的URL,因为服务器知道下一步要做什么。
告诉你自己“有限状态机”,以及它们如何帮助你创建一个工作流,根据你提供给用户的选择,只允许非常有限的一组操作。为此,您很可能需要一个会话。
当正确完成时,用户不能篡改URL,因为所有其他URL都将导致404或其他值,并且试图摆弄接受用户选择的一个URL将仅在所需步骤在允许的步骤列表中时才起作用-否则什么都不会改变。
举例说明:
第一个状态是"start",允许的转换是"answer 1“和"answer 2”。它们正在转换到两个结束状态,没有进一步的转换。因此,每当用户进入“已应答1”状态时,除了创建新会话外,他无法进入其他状态。如果机器状态不是绑定到会话,而是绑定到用户帐户,则也可以禁止创建新会话。
https://stackoverflow.com/questions/16156410
复制相似问题