除非从jQuery调用页面,否则重定向

时间:2010-08-17 18:39:22

标签: php jquery redirect

我有一个页面通过jQuery调用动态加载到另一个页面。我想要的是只有在jQuery调用时才能访问加载的页面,如果直接从浏览器地址栏访问它,则重定向。 我该怎么做?

谢谢!

5 个答案:

答案 0 :(得分:5)

你不能可靠地做到这一点。原因很简单:一切都可以伪造。

自定义HTTP标头可能也可能不会始终有效,因为某些防火墙会删除所有未知标头。因此,从始终如一的工作来看,这应该是不可靠的。甚至可以使用像FireFox扩展程序“Tamper Data”这样的工具手动将它们添加到请求中......所以从始终重定向的角度看它也不可靠......

参数不起作用,因为知道他们在做什么的人很容易伪造它们。因此,当没有被jQuery观点调用时,总是重定向它是不可靠的。

如果您只是为了方便起见(而不是从安全角度来看),请使用请求参数。如果您使用它是为了安全起见,我建议您提出另一种设计,因为您无法从客户端执行任何操作......

答案 1 :(得分:2)

如果请求是ajax请求,包括使用jQuery创建的请求,那么将设​​置以下内容:

$_SERVER['HTTP_X_REQUESTED_WITH']

答案 2 :(得分:1)

您可以在请求中添加参数。例如jquery=true

这样您就不会强制用户不能直接从传递此参数的地址栏中打开,但您可以适当地处理这两种情况。

答案 3 :(得分:0)

我会设置一些vale - querystring可能 - 当进行JQuery调用时。然后在加载新页面时,我会检查该值是否存在。如果值在那里,继续加载页面,否则重定向。

答案 4 :(得分:0)

在向页面发送请求并在页面中检查标题时,在jquery中添加自定义http标头