在发现HTTP_REFERER
的不可靠性之后,我想知道什么是指示操作正确的原始URL然后执行内部重定向的最佳替代方法。
在阅读了各种主题后,我似乎明白只有可能的解决方案是:
1)直接指定referer url作为操作的参数。
2)使用session创建自定义引用存储系统。
在我看来,第一种解决方案在逻辑上更正确,没有禁忌症。 使用第二个解决方案并在每个页面请求中将引用者存储在会话中是可能的,使用存储的各个选项卡引用者中的站点不对应于我们实际发送操作的页面;尽管这个错误(在我看来非常难看),这个第二个解决方案似乎是专家最推荐的。为什么?我错过了什么? 感谢大家的关注,对不起我的英语水平很低。
答案 0 :(得分:0)
在每个页面请求中将引用者存储在会话中是可能的,使用存储的各个选项卡中的站点与我们实际发送操作的页面不对应;尽管这个错误(在我看来非常难看),这个第二个解决方案似乎是专家最推荐的
您可以通知服务器使用当前页面更新会话 before leaving - 这样下一个加载的页面将知道前一个页面是什么,而不传递URL中的任何内容。
虽然说这个解决方案仍有一些错误 - 它会在任何连接失败时中断,或者如果有人在多个选项卡中加载多个页面并且请求不同步(它依赖于javascript发送请求离开页面之间的假设和服务器接收加载下一页的请求没有其他事情发生。)
最好的方法是同时使用 - 和HTTP_REFERER
作为后备选项。
除了提到的URL中当前页面的传递之外,可以理解为什么你试图避免它。